В приложении Phoenix, в чем разница между ключом:port в конфигурациях:http и:url?

В настоящее время я работаю в приложении Phoenix, и у меня возник этот вопрос при изменении моего /config/* файлы.

В настоящее время конфигурация для моей конечной точки содержит следующее:

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

После прочтения обеих документов для конфигурации: http и конфигурации : url мне все еще не ясно:

Для чего используется каждая конфигурация порта и чем они отличаются?

1 ответ

Решение

port в :url используется для создания URL-адресов (например, _url Помощники маршрутизатора) в приложении, в то время как port в :http порт TCP, к которому приложение будет привязывать HTTP-сервер. Это полезно, поскольку ваши общедоступные URL-адреса, скорее всего, будут иметь порт 80 (порт HTTP по умолчанию) или 443 (порт HTTPS по умолчанию), в то время как ваше приложение может работать на другом порту за обратным прокси-сервером, балансировщиком нагрузки или сервером кэширования (например, Nginx)., HAProxy, Лак). Если бы была только одна конфигурация для обоих, вы бы не смогли разместить более одного приложения на одном порту сервера, в то же время генерируя действительные URL-адреса в _url Помощники маршрутизатора.

Другие вопросы по тегам