2017-01-24 1 views
1

У меня есть приложение 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, и я его еще не понял?

ответ

1

Вам необходимо установить scheme в "https". Это должно работать:

config :my_app, MyApp.Endpoint, 
    http: [port: 8080], 
    url: [host: "my_domain.com", port: 443, scheme: "https"], 
    # ... 
+0

Нет, это не сработало для меня. Я пробовал [хост: «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

+0

Вы уверены, что ошибка указана из схемы: https " 'не' схема:: https'? '' https "работает для меня. – Dogbert

+0

Да, это моя ошибка: я написал: https. '[host:" my_domain.com ", порт: 443, схема:" https "]' отлично работает, спасибо. Подтвердите добавление порта: 443 к вашему ответу, и я приму его – Vizvamitra