NGINX 无法正确地将 Web 应用请求反向代理到其相对位置

NGINX 无法正确地将 Web 应用请求反向代理到其相对位置

我的家庭服务器上运行着两个 Web 应用程序,一个在端口 7001 上,另一个在端口 3578 上。

这两个应用程序都有一些 REST API 路由,全部以 开头/api

针对两个位置块,我的 NGINX 配置如下:

location /deals/ {
    include /config/nginx/proxy.conf;
    proxy_cache_bypass $http_upgrade;
    proxy_pass http://192.168.1.65:7001/;
    proxy_redirect off;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Proto https;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Server $host;
}

location /speed/ {
    include /config/nginx/proxy.conf;
    proxy_cache_bypass $http_upgrade;
    proxy_pass http://192.168.1.65:3578/;
    proxy_redirect off;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Proto https;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Server $host;
}

这是经过一整个下午的 Google 搜索的结果...

192.168.1.65是我的家庭服务器的本地网络IP地址。

问题我面临的问题是,当这些 Web 应用程序进行 API 调用时,它们不是相对于其(新的代理)位置进行调用,而是从域 URL 进行调用。

当我导航到https://my-domain.com/deals和时https://my-domain.com/speed,我可以分别看到我的网络应用程序。

数据永远不会加载,因为它们都在调用my-domain.com/api而不是my-domain.com/deals/apimy-domain.com/speed/api。我可以在 Chrome 开发工具的网络选项卡中看到这一点,两者都返回 404。

当我导航到 时192.168.1.65:7001,我可以看到我的网络应用程序和数据已正确加载。

当我在地址栏中手动输入时https://my-domain.com/speed/api/example,我可以看到它可以用 200 状态代码正确回答 GET 请求。

我怎样才能让他们从各自的位置拨打电话?

相关内容