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:80我收到 301 代碼並重定向到localhost:80/swagger/index.html.但我需要 port 8080,為什麼 nginx 忽略 proxy_pass 中的 port ?

答案1

您可以修改監聽連接埠 80 的伺服器區塊的監聽指令,以包含連接埠號碼:

listen 80 default_server;

這將使 Nginx 偵聽連接埠 80 並將流量路由至 http://localhost:8080/swagger/,同時保留 URL 中的連接埠號碼。

相關內容