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

时间:2016-12-16 20:50:31

标签: elixir phoenix-framework cowboy

我目前正在凤凰城应用中工作,在修改/config/*文件时遇到了这个问题。

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

config :my_app, MyApp.Endpoint,
  http: [port: 8080],
  url: [host: "example.com", port: 80]
...

在阅读the :http configthe :url config的两个文档后,我仍然不清楚:

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

1 个答案:

答案 0 :(得分:5)

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