我的家庭服务器上运行着两个 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/api
或my-domain.com/speed/api
。我可以在 Chrome 开发工具的网络选项卡中看到这一点,两者都返回 404。
当我导航到 时192.168.1.65:7001
,我可以看到我的网络应用程序和数据已正确加载。
当我在地址栏中手动输入时https://my-domain.com/speed/api/example
,我可以看到它可以用 200 状态代码正确回答 GET 请求。
我怎样才能让他们从各自的位置拨打电话?