Простая конфигурация прокси-сервера веб-приложения Python Flask для включения SSL/HTTPS с Apache
У меня есть рабочее веб-приложение на основе Python, Flask. (настроен для работы на http: // хост: порт)
Мне нужно, чтобы он работал с https. Мне дали прокси-сервер Apache, который перенаправляет все запросы следующим образом:
(Apache) https: // host / myApp -> http:// host:port (мое приложение на основе Flask). Где host: port - это стандартная конфигурация, где мое приложение работало нормально.
Я могу добраться до страницы сервиса и индекса. Однако существует проблема с доступом ко всему статическому контенту, которая была запрошена методом vi url_for (например, ico, images и т. Д.).
Можете ли вы указать мне какие-либо ресурсы / информацию? Заранее спасибо.
1 ответ
Мы добавляем строку в httpd.conf, которая обрабатывает / static / вместо того, чтобы передавать ее в gunicorn:
<VirtualHost oursite.com>
# Tells apache where /static/ should go
Alias /static/ /full/path/to/flask/app/static/
# Proxy everything to gunicorn EXCEPT /static and favicon.ico
ProxyPass /favicon.ico !
ProxyPass /static !
ProxyPass / http://gunicorn.oursite.com:4242/
ProxyPassReverse / http://gunicorn.oursite.com:4242/
</VirtualHost>
Это работает, потому что у нас есть gunicorn и apache, работающие на одной и той же коробке, что может или не может работать для вас. Возможно, вам придется скопировать статические файлы на хост apache как часть развертывания вашего сайта.
Возможно, есть лучший способ сделать это, но он работает для нас.