gpt4 book ai didi

ssl - force_ssl 甚至落后于 nginx 并生成 https url

转载 作者:太空宇宙 更新时间:2023-11-03 14:39:47 29 4
gpt4 key购买 nike

我正在尝试让 force_ssl 工作。我的意思是我想将尝试通过应用程序本身通过 http 连接到 https 的人重定向。

该应用程序是基于 Nginx 的 dockerized 发布版本。实际上 Nginx 正在为 SSL 服务,我知道我可以完全依靠 Nginx 来终止 ssl 连接,甚至处理非 https 请求的重定向。但我想了解如何让它工作,所以如果有一天我跳过代理,我就会知道如何去做。

我的产品/配置看起来像这样:

config :my_app, MyApp.Endpoint,
http: [port: "${PORT}"],
url: [host: "${APP_URL}", port: "${APP_PORT}"],
force_ssl: [hsts: true], #I tried different options without success
server: true,
cache_static_manifest: "priv/static/manifest.json",
root: ".",
version: Mix.Project.config[:version]

实际上,当通过 https 访问服务器时,一切都按预期运行。但是当使用 http 地址时,重定向 url 看起来像:https://%24%7Bapp_url%7D/ 并且它不起作用。

也许这是因为我没有提供证书文件,没有它就无法完成整个过程?如果请求不是 https,我在想 force_ssl 只是一个基本的重定向。

最后我还尝试在邮件中生成 https url 例如我有这样的东西:

<%= password_url(MyApp.Endpoint, :reset_password_from_email, token: @token, email: @email) %>

但由于我的配置似乎不太好,它只生成 http 链接而不是 https。

也许我应该把它完全分开,在 Nginx 端 100% 或在应用程序端 100% 但不要试图将它们混合?

欢迎任何帮助/想法/评论!

编辑:

上次测试:

force_ssl: [rewrite_on: [:x_forwarded_proto], subdomains: true, hsts: true, host: "${APP_URL}"]

错误 url 的结果:https://%24%7Bapp_url%7D/。所以我认为这是可行的,但是 var: "${APP_URL}" 没有转换为实际值。我正在研究这个。

最佳答案

通过硬编码 host: "${APP_URL}" 值解决了我上次编辑中怀疑的问题。

这里有问题,因为所有其他 ENV_VAR 都被它们的值替换了,但这个不是。

关于ssl - force_ssl 甚至落后于 nginx 并生成 https url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44204230/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com