#nginx #reverse-proxy
#nginx #обратный прокси
Вопрос:
На моем компьютере aws ubuntu (18.04) у меня есть 2 приложения, работающие на 2 портах
(1) У меня есть .net core 3.1 angular spa с сервером идентификации 4, работающим на 5000, и я настроил его, выполнив следующие действия
Nginx — это только обратный прокси
(2) У меня есть приложение angular ssr, работающее на порту 4000.
Чего я хочу добиться, так это того, чтобы обратный прокси-сервер подключал ботов социальных сетей к порту 4000, в то время как все остальные запросы перенаправляются на 5000.
В настоящее время nginx проксирует только приложение .net core на порту 5000
Ответ №1:
Вы можете использовать «location и proxy_pass» для доступа к нужным приложениям, которые работают на разных портах.
Если у вас есть все материалы на одной виртуальной машине, просто используйте localhost вместо ip-адреса, который я записал.
Но если приложение запущено на другой виртуальной машине, используйте его IP-адрес, который в моей конфигурации является сервером назначения: 172.16.0.100
Вы можете отредактировать файл hosts и использовать «example.com » или что угодно, чтобы указать ваш сайт и использовать в вашем конфигурационном файле nginx вместо IP или localhost.
sudo vi /etc/hosts
172.16.0.100 example.com
и добавьте желаемое полное доменное имя на хост назначения или, если у вас есть dns, добавьте запись AAAA, которая будет доступна во всей локальной сети.
Я пишу эту конфигурацию на своем сервере nginx, и она работает как шарм. В любом случае вы можете написать и отредактировать эту конфигурацию в своей среде.
server {
{
listen 80;
server_name 172.16.0.100;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
location /angular {
proxy_pass http://172.16.0.100:5000;
}
location /ssr {
proxy_pass http://172.16.0.100:4000;
}
}