#docker #apache #flask #proxy
Вопрос:
У нас есть сервер под управлением apache2, на котором размещается ряд веб-сайтов и приложений. У нас есть докеризованное приложение Flask (обслуживаемое с помощью Gunicorn), которое мы хотели бы развернуть на сервере и направить на него прямой трафик Apache. В основном https://oneofoursites.com/flask_app
перенаправление в окно настройки порта доступно для приложения Flask. Прямо сейчас сайт работает нормально, если вы перейдете по https://oneofoursites.com:4000/
ссылке .
Я впервые попытался сделать что-то подобное в файле apache.conf в разделе доступные сайты:
ProxyPass /flask_app http://127.0.0.1:4000/ connectiontimeout=3600 timeout=3600
ProxyPassReverse /flask_app http://127.0.0.1:4000/
<Location /flask_app >
Require all granted
</Location>
Приложение flask теперь доступно по адресу https://oneofoursites.com/flask_app
, но ни одна из ссылок не работает.
Документация по колбе была немного полезной, но недостаточно близкой к моему случаю. Кажется, я не могу заставить Flask собирать переменные окружения (поскольку он находится внутри контейнера Docker), поэтому не смог заставить его изменить сами заголовки. Я заглянул в mod_wsgi, но не уверен, как его развернуть (внутри контейнера Docker, и Apache не будет запускать его; вне контейнера, как мне перенаправить его в приложение Flask?). Большинство руководств, которые я нахожу, рекомендуют Nginx, поэтому, возможно, мне нужно развернуть Nginx (либо в существующем контейнере Flask, либо в отдельном контейнере с docker-compose)? Будет ли это тогда действовать как подходящее промежуточное звено между Apache и приложением Flask?
Комментарии:
1. Я бы запустил nginx/ apache в другом контейнере и использовал docker-compose. Просто помните, что вам нужно привязать порты к внешним портам, чтобы apache мог забрать их за пределами docker