我在同一台机器上运行两个Web服务。第一个是nodejs应用api网关,在fork模式下与PM2一起运行,在nginx上,我使上游向Internet公开了端口3000,并将端口3001中的PM2节点公开了。
我的第二个应用程序是运行在端口8081(不暴露于Internet)上的Java Web服务,nodejs应用程序网关必须过滤所有传入的请求,但我的nodejs应用程序无法访问其他服务。
如果我将Java Web Service公开到互联网(公共ip和端口)并在本地计算机上运行我的nodejs应用程序,则nodejs应用程序可以访问另一个Web服务,但是在生产中无法在同一台计算机上运行这些服务,我认为我的NGINX配置中缺少某些内容。
我尝试将nodejs环境in
设置为localhost:8081 / 127.0.0.1:8081/,但是nodejs应用无法访问另一个Web服务。
NGINX配置
ENDPOINT
PM2环境配置,ENDPOINT这是Java中的另一个Web服务
upstream gateway{
server 127.0.0.1:3001;
server 127.0.0.1:3002;
}
server {
listen 3000;
location / {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://gateway;
}
}