Сообщите Flask, что оно находится за прокси-сервером
При использовании обратного прокси-сервера или многих платформ хостинга Python прокси будет перехватывать и пересылать все внешние запросы на локальный сервер WSGI.
С точки зрения сервера WSGI и приложения Flask, запросы теперь поступают от HTTP-сервера по локальному адресу, а не от удаленного адреса к внешнему адресу сервера.
Серверы HTTP должны устанавливать X-Forwarded- заголовки, чтобы передавать реальные значения приложению. Приложение может быть уведомлено о доверии и использовании этих значений путём обертывания его с помощью Средства исправления прокси X-Forwarded-For middleware, предоставленного Werkzeug.
Это middleware следует использовать только в том случае, если приложение фактически находится за прокси-сервером, и должно быть настроено с количеством прокси-серверов, соединённых перед ним. Не все прокси устанавливают все заголовки. Поскольку входящие заголовки могут быть подделаны, необходимо указать количество прокси, которые устанавливают каждый заголовок, чтобы middleware знал, чему доверять.
from werkzeug.middleware.proxy_fix import ProxyFix
app.wsgi_app = ProxyFix(
app.wsgi_app, x_for=1, x_proto=1, x_host=1, x_prefix=1
)
Помните, применяйте это middleware только если вы находитесь за прокси-сервером и установили правильное количество прокси, которые устанавливают каждый заголовок. Неправильная настройка может быть проблемой безопасности.
© 2007–2022 Pallets
Licensed under the BSD 3-clause License.
https://flask.palletsprojects.com/en/2.2.x/deploying/proxy_fix/