Merge pull request #489 from fastapiadmin/dev

Dev
This commit is contained in:
fastapiadmin
2026-07-27 00:37:08 +08:00
committed by GitHub
2 changed files with 10 additions and 8 deletions
+8 -6
View File
@@ -5,10 +5,9 @@ from typing import Any
from starlette.middleware.base import BaseHTTPMiddleware, RequestResponseEndpoint from starlette.middleware.base import BaseHTTPMiddleware, RequestResponseEndpoint
from starlette.middleware.cors import CORSMiddleware from starlette.middleware.cors import CORSMiddleware
from starlette.middleware.gzip import GZipMiddleware from starlette.middleware.gzip import GZipMiddleware
from starlette.middleware.httpsredirect import HTTPSRedirectMiddleware
from starlette.middleware.trustedhost import TrustedHostMiddleware from starlette.middleware.trustedhost import TrustedHostMiddleware
from starlette.requests import Request from starlette.requests import Request
from starlette.responses import Response from starlette.responses import RedirectResponse, Response
from starlette.types import ASGIApp from starlette.types import ASGIApp
from app.common.enums import RedisInitKeyConfig, SysParamKey from app.common.enums import RedisInitKeyConfig, SysParamKey
@@ -117,11 +116,14 @@ class CustomGZipMiddleware(GZipMiddleware):
super().__init__(app, minimum_size=settings.GZIP_MIN_SIZE, compresslevel=settings.GZIP_COMPRESS_LEVEL) super().__init__(app, minimum_size=settings.GZIP_MIN_SIZE, compresslevel=settings.GZIP_COMPRESS_LEVEL)
class CustomHTTPSRedirectMiddleware(HTTPSRedirectMiddleware): class CustomHTTPSRedirectMiddleware(BaseHTTPMiddleware):
"""HTTP → HTTPS 重定向中间件""" """HTTP → HTTPS 重定向中间件(信任前端代理的 X-Forwarded-Proto 头)"""
def __init__(self, app: ASGIApp) -> None: async def dispatch(self, request: Request, call_next):
super().__init__(app) if request.url.scheme != "https" and request.headers.get("X-Forwarded-Proto") != "https":
url = request.url.replace(scheme="https")
return RedirectResponse(url, status_code=301)
return await call_next(request)
class CustomTrustedHostMiddleware(TrustedHostMiddleware): class CustomTrustedHostMiddleware(TrustedHostMiddleware):
+2 -2
View File
@@ -168,8 +168,8 @@ services:
- ./nginx/web:/usr/share/nginx/html/web:ro - ./nginx/web:/usr/share/nginx/html/web:ro
- ./nginx/ssl:/etc/nginx/ssl:ro - ./nginx/ssl:/etc/nginx/ssl:ro
# 按需启用(取消注释): # 按需启用(取消注释):
# - ./nginx/app:/usr/share/nginx/html/app:ro - ./nginx/app:/usr/share/nginx/html/app:ro
# - ./nginx/docs:/usr/share/nginx/html/docs:ro - ./nginx/docs:/usr/share/nginx/html/docs:ro
depends_on: depends_on:
backend: backend:
condition: service_started condition: service_started