当 phoenix 位于代理后面时,一致性电子邮件中的 https 网址

Viz*_*tra 3 elixir phoenix-framework

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

我希望来自 Coherence 的电子邮件包含 https 网址,例如https://my_domain.com/...,但我不知道如何做到这一点。

这是我的应用程序的配置:

config :my_app, MyApp.Endpoint,
  http: [port: 8080],
  url: [host: "my_domain.com", port: 443],
  # ...
Run Code Online (Sandbox Code Playgroud)

使用此配置,电子邮件中的 URL 如下所示: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 方式,而我只是还没有得到它?

Dog*_*ert 6

您需要设置scheme"https". 这应该有效:

config :my_app, MyApp.Endpoint,
  http: [port: 8080],
  url: [host: "my_domain.com", port: 443, scheme: "https"],
  # ...
Run Code Online (Sandbox Code Playgroud)