В приложении 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
Помощники маршрутизатора.