Nginx:proxy_pass가 포트를 무시합니다.

Nginx:proxy_pass가 포트를 무시합니다.

Swagger를 사용하는 애플리케이션이 있습니다 localhost:8080/swagger/.

localhost:80실제 Swagger URL 로 리디렉션이 필요하므로 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:80301 코드를 받고 로 리디렉션됩니다 localhost:80/swagger/index.html. 하지만 port가 필요합니다 8080. nginx가 Proxy_pass의 포트를 무시하는 이유는 무엇입니까?

답변1

포트 번호도 포함하도록 포트 80에서 수신 대기하는 서버 블록에 대한 Listen 지시문을 수정할 수 있습니다.

listen 80 default_server;

이렇게 하면 Nginx가 포트 80에서 수신 대기하고 URL에 포트 번호를 유지하면서 http://localhost:8080/swagger/로 트래픽을 라우팅하게 됩니다.

관련 정보