generated from hjess/PythonTemplateProject
added middelware
All checks were successful
Build, Push, and Deploy to Nomad / docker-nomad (push) Successful in 33s
All checks were successful
Build, Push, and Deploy to Nomad / docker-nomad (push) Successful in 33s
This commit is contained in:
21
app.py
21
app.py
@@ -7,14 +7,31 @@ import os
|
||||
|
||||
from starlette.middleware.httpsredirect import HTTPSRedirectMiddleware
|
||||
|
||||
from fastapi.middleware.trustedhost import TrustedHostMiddleware
|
||||
|
||||
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")
|
||||
|
||||
if proto:
|
||||
request.scope["scheme"] = proto
|
||||
if host:
|
||||
request.headers["host"] = host
|
||||
|
||||
response = await call_next(request)
|
||||
return response
|
||||
|
||||
app = FastAPI()
|
||||
|
||||
# Mount static files
|
||||
app.mount("/static", StaticFiles(directory="static"), name="static")
|
||||
app.add_middleware(TrustedHostMiddleware, allowed_hosts=["*"])
|
||||
app.add_middleware(ProxyHeadersMiddleware, allowed_hosts=["*"])
|
||||
|
||||
|
||||
# Templates directory
|
||||
|
||||
Reference in New Issue
Block a user