Ваш сервер прослушивает порт 80:
listen 80 default_server;
listen [::]:80 default_server;
Итак, вы должны сделать запрос на этот порт:
GET http://127.0.0.1/api/ => http://127.0.0.1:1323/
GET http://127.0.0.1:80/api/ => http://127.0.0.1:1323/
GET http://127.0.0.1/ => http://127.0.0.1:4100/
GET http://127.0.0.1:80/ => http://127.0.0.1:4100/
Тогда nginx должен правильно проксировать ваши запросы.
Обновление
Чтобы быть более понятным в конфигурации nginx.
server {
listen 80 default_server; // The port nginx is listening to ipv4
listen [::]:80 default_server; // The port nginx is listening to ipv6
server_name _;
location / { // When you call this location...
proxy_pass http://127.0.0.1:4100; // You'll be redirected to this location
}
location /api { // When you call this location...
proxy_pass http://127.0.0.1:1323/; // You'll be redirected to this location
}
}
Ваша конфигурация в порядке в соответствии с документацией nginx .
Вы сказали, что ваш клиент пытается дозвониться до http://127.0.0.1:1323/api/
, но он должен запросить перенаправление http://127.0.0.1/api/
(без порта) на http://127.0.0.1:1323/
.
Вот еще один пример:
server {
listen 80;
server_name localhost anywebsite.com;
location ~* ^/MyApp {
proxy_pass http://localhost:5130;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_send_timeout 2m;
proxy_read_timeout 2m;
}
}
В этом случае, каждый раз, когда мой URL заканчивается /MyApp
, например: http://anywebsite.com/api/MyApp
Я прокси на http://localhost:5130
. Но если я попытаюсь получить доступ к http://localhost:5130
или http://anywebsite.com:5130/api/MyApp
, я не смогу, потому что nginx прослушивает только порт 80. Если вы хотите получить доступ к другому порту, вам нужно указать следующее:
server {
listen 80;
listen 5130;
[...]