У меня есть приложение с конечной точкой http: // localhost: 3000 / seller /, и я использую nginx proxy_pass
server {
include default_proxy_headers;
listen 80;
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name domain.my;
location /seller {
proxy_buffering off;
proxy_pass http://localhost:3000;
}
location /seller/api {
rewrite /seller/(.*) /$1 break;
proxy_pass http://localhost:5000;
proxy_buffering off;
}
}
Это работает, как я ожидал, с https://domain.my/seller/ - все нормально.
Если я пытаюсь использовать https://domain.my/seller (без косой черты "/" в конце) перенаправляет на https://domain.my:3000/seller/.
Как отключить перенаправление на порт ": 3000"? Я хочу, чтобы он работал только как https://domain.my/seller/ (с / в конце).
Хорошо. Если я вас правильно понял, посмотрите. Что, если бы вы использовали upstream
? Номера портов перемещены внутри каждого upstream
позволяя вам proxy_pass
их по псевдониму.
upstream backend1 {
# PHP-CGI GATEWAY 1 - listening on IPv4 & Port...
server 127.0.0.1:3000 weight=3 max_fails=1 fail_timeout=1s;
} # END upstream backend1
upstream backend2 {
# PHP-CGI GATEWAY 2 - listening on IPv4 & Port...
server 127.0.0.1:5000 weight=3 max_fails=1 fail_timeout=1s;
} # END upstream backend2
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name *.example1.com;
root /var/www/example1.com/public;
index index.html;
location /seller {
proxy_pass http://backend1;
proxy_http_version 1.1;
proxy_cache_bypass $http_upgrade;
# Proxy headers
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
# Proxy timeouts
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
}
location /seller/api {
proxy_pass http://backend2;
proxy_http_version 1.1;
proxy_cache_bypass $http_upgrade;
# Proxy headers
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
# Proxy timeouts
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
}
}