Смысл обратного прокси-сервера, такого как nginx, заключается в том, что вы можете размещать на нем несколько приложений независимо от того, какой внутренний порт они используют. Таким образом, вы можете легко размещать приложения на портах 5000, 5001, 5002 и т. Д., А затем заставлять nginx отображать все эти приложения в разных доменах на порте 80 или даже в виде подпутей одного и того же домена (если приложения настроены должным образом для поддержки этого ).
Итак, конфигурация nginx может выглядеть так:
server {
server_name host1.example.com;
location / {
proxy_pass http://localhost:5000/;
# …
}
}
server {
server_name host2.example.com;
location / {
proxy_pass http://localhost:5001/;
# …
}
}
server {
server_name host3.example.com;
location / {
proxy_pass http://localhost:5002/;
# …
}
}
Это позволит разместить три различных приложения, используя внутренние порты 5000, 5001 и 5002, на трех разных поддоменах host1.example.com, host2.example.com и host3.example.com.
Конечно, для этого вам нужно запускать приложения на разных портах. Вы можете использовать переменную окружения ASPNETCORE_URLS
для динамической установки URL-адреса, на котором размещается приложение, например, с помощью:
$ ASPNETCORE_URLS=http://localhost:5001 dotnet run