在Phoenix应用程序中,:http和:url配置的:port键之间有什么区别?

Dan*_*jas 6 elixir cowboy phoenix-framework

我目前正在使用Phoenix应用程序,在修改/config/*文件时遇到了这个问题.

目前,我的Endpoint的配置包含以下内容:

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

在阅读了两个文件:http配置:url配置后,我仍然不清楚:

每个是什么:端口配置用于它们和它们有何不同?

Dog*_*ert 5

port:url用于产生的URL(如_url,而在应用程序内路由器助手)port:http是应用程序将HTTP服务器绑定的TCP端口.这很有用,因为您可公开访问的URL很可能是端口80(默认HTTP端口)或443(默认HTTPS端口),而您的应用程序可能在反向代理,负载均衡器或缓存服务器(如Nginx)后面的另一个端口上运行,HAProxy,Varnish).如果两者只有一个配置,则在_url路由器帮助程序中仍然生成有效URL时,您将无法在服务器的一个端口上托管多个应用程序.