added middelware
Some checks failed
Build, Push, and Deploy to Nomad / docker-nomad (push) Has been cancelled

This commit is contained in:
2024-12-10 21:48:10 +01:00
parent 1faff0fbc2
commit d9001d2758

12
app.py
View File

@@ -6,23 +6,19 @@ import json
import os
from starlette.middleware.httpsredirect import HTTPSRedirectMiddleware
from fastapi import FastAPI
from starlette.middleware.base import BaseHTTPMiddleware
from starlette.requests import Request
class ProxyHeadersMiddleware(BaseHTTPMiddleware):
async def dispatch(self, request: Request, call_next):
# Fix protocol and host based on headers sent by NGINX
proto = request.headers.get("X-Forwarded-Proto", "http")
host = request.headers.get("X-Forwarded-Host")
host = request.headers.get("X-Forwarded-Host", request.headers.get("Host"))
if proto:
# Update request scheme and host for correct URL generation
request.scope["scheme"] = proto
if host:
request.headers["host"] = host
request.scope["server"] = (host.split(":")[0], request.scope["server"][1])
response = await call_next(request)
return response
@@ -31,7 +27,7 @@ app = FastAPI()
# Mount static files
app.mount("/static", StaticFiles(directory="static"), name="static")
app.add_middleware(ProxyHeadersMiddleware, allowed_hosts=["*"])
app.add_middleware(ProxyHeadersMiddleware)
# Templates directory