Простая конфигурация прокси-сервера веб-приложения 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 как часть развертывания вашего сайта.

Возможно, есть лучший способ сделать это, но он работает для нас.

Другие вопросы по тегам