Я создал базовое веб-приложение с помощью Flask и смог запустить его с виртуальной машины, используя собственный http-сервер. Я быстро понял, что при такой настройке запросы блокируются (я не мог выполнять одновременные запросы на ресурсы; любой новый запрос будет ждать завершения предыдущих запросов), и решил попробовать запустить приложение gunicorn для решения этой проблемы. Я следовал документации, в частности, с этой строкой:
gunicorn -w 4 -b 127.0.0.1:4000 myproject:app
Однако он не смог загрузиться, сделав только это, и пожаловался, что нет приложения WSGI. Покопавшись в Интернете, я обнаружил, что несколько человек разместили примеры, включая следующие:
from werkzeug.contrib.fixers import ProxyFix
app.wsgi_app = ProxyFix(app.wsgi_app)
Я добавил это, и это решило мою проблему. Я сбит с толку, потому что это, по-видимому, предназначено для решения проблемы, связанной с HTTP-прокси, но будет ли добавление gunicorn навязывать HTTP-прокси? Или я всегда был за прокси, и это просто не имело значения для встроенного сервера Flask?
Кроме того, документация Werkzeug по Fixers предупреждает: "Не используйте это промежуточное ПО в настройках без прокси-сервера". из соображений безопасности». Учитывая, что исправление было явно необходимо, могу ли я предположить, что я настроил прокси?
ProxyFix
, чтобы даже запустить пушкикорн. - person sjy   schedule 04.03.2014