在 Phoenix 应用程序中,:http 和 :url 配置的 :port 键有什么区别?
In a Phoenix application, what is the difference between the :port key of the :http and :url configurations?
我目前在 Phoenix 应用程序中工作,在修改我的 /config/*
文件时遇到了这个问题。
目前我的端点配置包含以下内容:
config :my_app, MyApp.Endpoint,
http: [port: 8080],
url: [host: "example.com", port: 80]
...
阅读了 the :http config and the :url config 的两个文档后,我仍然不清楚:
每个 :port 配置的用途是什么,它们有何不同?
:url
中的 port
用于在应用程序中生成 URL(如 _url
路由器助手),而 :http
中的 port
是应用程序将 HTTP 服务器绑定到的 TCP 端口。这很有用,因为您的可公开访问的 URL 很可能是端口 80(默认 HTTP 端口)或 443(默认 HTTPS 端口),而您的应用程序可能 运行 在反向代理、负载平衡器或缓存后面的另一个端口上服务器(如 Nginx、HAProxy、Varnish)。如果两者只有一种配置,您将无法在服务器的一个端口上托管多个应用程序,同时仍然在 _url
路由器助手中生成有效的 URL。
我目前在 Phoenix 应用程序中工作,在修改我的 /config/*
文件时遇到了这个问题。
目前我的端点配置包含以下内容:
config :my_app, MyApp.Endpoint,
http: [port: 8080],
url: [host: "example.com", port: 80]
...
阅读了 the :http config and the :url config 的两个文档后,我仍然不清楚:
每个 :port 配置的用途是什么,它们有何不同?
:url
中的 port
用于在应用程序中生成 URL(如 _url
路由器助手),而 :http
中的 port
是应用程序将 HTTP 服务器绑定到的 TCP 端口。这很有用,因为您的可公开访问的 URL 很可能是端口 80(默认 HTTP 端口)或 443(默认 HTTPS 端口),而您的应用程序可能 运行 在反向代理、负载平衡器或缓存后面的另一个端口上服务器(如 Nginx、HAProxy、Varnish)。如果两者只有一种配置,您将无法在服务器的一个端口上托管多个应用程序,同时仍然在 _url
路由器助手中生成有效的 URL。