当凤凰在代理后面时,https在连贯性电子邮件中记录网址

时间:2017-01-24 21:12:27

标签: elixir phoenix-framework

我在nginx后面设置了我的凤凰应用程序。 Nginx正在提供https流量。

我希望来自coherence的电子邮件包含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网址,但这似乎也是错误的。

或者也许在erlang应用程序前使用代理不是一种erlang方式,我只是没有得到它?

1 个答案:

答案 0 :(得分:3)

您需要将scheme设置为"https"。这应该有效:

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