Nginx: proxy_pass ignora porta

Nginx: proxy_pass ignora porta

Eu tenho um aplicativo com Swagger ativado localhost:8080/swagger/.

Preciso de um redirecionamento localhost:80para o URL real do swagger, então localhost:8080/swagger/configurei um proxy reverso 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;
    }
}

Então, quando eu entro, localhost:80recebo o código 301 e redireciono para localhost:80/swagger/index.html. Mas eu preciso de port 8080, por que o nginx ignora port em proxy_pass?

Responder1

você pode modificar a diretiva listen do bloco do servidor que escuta na porta 80 para incluir também o número da porta:

listen 80 default_server;

Isso fará com que o Nginx escute na porta 80 e roteie o tráfego para http://localhost:8080/swagger/ enquanto mantém o número da porta na URL.

informação relacionada