Tengo una aplicación con Swagger activado localhost:8080/swagger/
.
Necesito una redirección desde localhost:80
la URL real de swagger, por lo que localhost:8080/swagger/
configuro un proxy inverso de 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;
}
}
Entonces, cuando entro, localhost:80
recibo el código 301 y lo redirecciono a localhost:80/swagger/index.html
. Pero necesito el puerto 8080
, ¿por qué nginx ignora el puerto en proxy_pass?
Respuesta1
puede modificar la directiva de escucha para el bloque del servidor que escucha en el puerto 80 para incluir también el número de puerto:
listen 80 default_server;
Esto hará que Nginx escuche en el puerto 80 y enrute el tráfico a http://localhost:8080/swagger/ manteniendo el número de puerto en la URL.