У меня есть приложение phoenix, настроенное за nginx. Nginx обслуживает трафик https.https urls в когерентных письмах, когда phoenix находится за прокси
Я хочу, чтобы письма от согласованности содержали URL-адреса https, такие как https://my_domain.com/...
, но я не могу понять, как это сделать.
Вот конфиг моего приложения в:
config :my_app, MyApp.Endpoint,
http: [port: 8080],
url: [host: "my_domain.com", port: 443],
# ...
С помощью этой конфигурации, адреса в сообщениях электронной почты, как это: my_domain.com:443/some_path
. И когда я удаляю port: 443
, они стали my_domain.com:8080/some_path
. И добавление force_ssl: [hsts: true]
тоже не помогает.
Из курса я мог установить url: [host: "my_domain.com", port: 80]
и установить nginx для перенаправления всех HTTP-запросов на порт 443, но мне кажется, что это неправильно. Я могу редактировать шаблоны электронной почты, чтобы заставить https URL-адреса, но это также кажется неправильным.
Или, возможно, использование прокси-сервера перед приложением erlang не является способом erlang, и я его еще не понял?
Нет, это не сработало для меня. Я пробовал [хост: «my_domain.com», схема: «https»] 'и' [host: "my_domain.com", порт: 443, схема: "https"] ', но в обоих случаях получил:' ** (FunctionClauseError) нет соответствия спецификации функции в URI.default_port/1' '(elixir) lib/uri.ex: 44: URI.default_port (: https)' – Vizvamitra
Вы уверены, что ошибка указана из схемы: https " 'не' схема:: https'? '' https "работает для меня. – Dogbert
Да, это моя ошибка: я написал: https. '[host:" my_domain.com ", порт: 443, схема:" https "]' отлично работает, спасибо. Подтвердите добавление порта: 443 к вашему ответу, и я приму его – Vizvamitra