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:80
301 코드를 받고 로 리디렉션됩니다 localhost:80/swagger/index.html
. 하지만 port가 필요합니다 8080
. nginx가 Proxy_pass의 포트를 무시하는 이유는 무엇입니까?
답변1
포트 번호도 포함하도록 포트 80에서 수신 대기하는 서버 블록에 대한 Listen 지시문을 수정할 수 있습니다.
listen 80 default_server;
이렇게 하면 Nginx가 포트 80에서 수신 대기하고 URL에 포트 번호를 유지하면서 http://localhost:8080/swagger/로 트래픽을 라우팅하게 됩니다.