Колба имеет настройку SERVER_NAME
, которая удобна в большинстве случаев. Поскольку у моего приложения есть фоновая задача, я использую контекст Flask. Чтобы контекст работал, необходимо установить SERVER_NAME
.
Если установлено значение SERVER_NAME
, входящие запросы проверяются на соответствие этому значению или маршрут не найден. При размещении nginx (или другого веб-сервера впереди, SERVER_NAME
также должен включать в себя порт, а обратный прокси-сервер должен обрабатывать материал для перезаписи, скрывая номер порта от внешнего мира (что он и делает). в современных браузерах имя URL-адреса прокси-сервера должно совпадать с SERVER_NAME
, в противном случае браузер отказывается отправлять куки-файлы. Эту проблему можно решить, добавив официальный hostname
в /etc/hosts
и указав его 127.0.0.1
.
Есть одна вещь, которую я еще не понял, и это URL в фоновых задачах. url_for используется с параметром _external для генерации URL-адресов в отправляемой им почте. Но этот URL включает порт, который, конечно, отличается от порта 443
, на котором работает мой nginx ...
Удаление порта из SERVER_NAME
приводит к сбою в работе, описанной в первом абзаце.
Так, каковы мои лучшие варианты для обработки url_for
в почте. Создать отдельный параметр конфигурации? Создать свой собственный url_for
?