gpt4 book ai didi

ssl - 使用 Phoenix/Elixir 和 nginx 在服务器上设置 https

转载 作者:太空宇宙 更新时间:2023-11-03 13:09:00 25 4
gpt4 key购买 nike

我知道如何使用 nginx 为 clojure 网络应用程序设置 https。如何为 Phoenix 做到这一点?在 prod.exs 我有这个:

config :my_app, MyApp.Endpoint,
url: [host: "my_website.com", port: 443],
http: [port: 4000],
# https: [port: 443,
# keyfile: System.get_env("SOME_APP_SSL_KEY_PATH"),
# certfile: System.get_env("SOME_APP_SSL_CERT_PATH")],

cache_static_manifest: "priv/static/manifest.json"

我有这个:

ssl_certificate:  /etc/letsencrypt/live/my_app.com/fullchain.pem;
ssl_certificate_key: /etc/letsencrypt/live/my_app.com/privkey.pem;

我也想在 Phoenix 上使用 nginx。

1) 我应该从“prod.exs”中完全删除“http: [port: 4000]”吗?

2) 我应该取消注释 "https: [port: 443,..."吗?或者我应该同时拥有它们?我不想通过 http 访问网站,或者我会让 nginx 通过将用户从 http 重定向到 https 来处理它。

3) 或者我应该删除 https 和 http 让 nginx 处理吗?

4) 关键“url”和它的“端口”怎么样?

最佳答案

如果您使用 Nginx 来终止连接的 SSL 部分,那么您可以保留为 HTTP 和您喜欢的任何端口配置的应用服务器(只要您配置 Nginx 转发到它,4000 就可以)。如果您的服务器配置正确,它不会响应 HTTP 端口 4000 请求,因此无法绕过 SSL。

您在应用服务器级别引用的 SSL 配置将应用服务器配置为终止 SSL 连接(不需要 Nginx)。由于 cowboy,Phoenix 应用程序都是“全功能”网络服务器.因此,它们可以处理 SSL 终止以及为应用程序的动态和静态 Assets 提供服务。

URL 配置使您的应用程序知道它的域并可以生成完整的 url 和路径。

关于ssl - 使用 Phoenix/Elixir 和 nginx 在服务器上设置 https,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39079244/

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