У меня есть приложение Swagger на localhost:8080/swagger/
.
Мне нужно перенаправление с localhost:80
реального URL-адреса Swagger, поэтому localhost:8080/swagger/
я настраиваю обратный прокси-сервер Nginx:
server {
listen 80;
server_name=_;
location / {
proxy_pass http://localhost:8080/swagger/;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Итак, когда я вхожу, localhost:80
я получаю код 301 и перенаправляюсь на localhost:80/swagger/index.html
. Но мне нужен порт 8080
, почему nginx игнорирует порт в proxy_pass?
решение1
Вы можете изменить директиву listen для блока сервера, прослушивающего порт 80, чтобы также включить номер порта:
listen 80 default_server;
Это заставит Nginx прослушивать порт 80 и направлять трафик на http://localhost:8080/swagger/, сохраняя при этом номер порта в URL.