| ) | ) | ||||
| RESPECT_XFORWARD_HEADERS_ENABLED: bool = Field( | RESPECT_XFORWARD_HEADERS_ENABLED: bool = Field( | ||||
| description="Enable or disable the X-Forwarded-For Proxy Fix middleware from Werkzeug" | |||||
| " to respect X-* headers to redirect clients", | |||||
| description="Enable handling of X-Forwarded-For, X-Forwarded-Proto, and X-Forwarded-Port headers" | |||||
| " when the app is behind a single trusted reverse proxy.", | |||||
| default=False, | default=False, | ||||
| ) | ) | ||||
| if dify_config.RESPECT_XFORWARD_HEADERS_ENABLED: | if dify_config.RESPECT_XFORWARD_HEADERS_ENABLED: | ||||
| from werkzeug.middleware.proxy_fix import ProxyFix | from werkzeug.middleware.proxy_fix import ProxyFix | ||||
| app.wsgi_app = ProxyFix(app.wsgi_app) # type: ignore | |||||
| app.wsgi_app = ProxyFix(app.wsgi_app, x_port=1) # type: ignore |
| proxy_set_header Host $host; | proxy_set_header Host $host; | ||||
| proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | ||||
| proxy_set_header X-Forwarded-Proto $scheme; | proxy_set_header X-Forwarded-Proto $scheme; | ||||
| proxy_set_header X-Forwarded-Port $server_port; | |||||
| proxy_http_version 1.1; | proxy_http_version 1.1; | ||||
| proxy_set_header Connection ""; | proxy_set_header Connection ""; | ||||
| proxy_buffering off; | proxy_buffering off; |