解决Nginx代理多个Node.js Express服务的问题,另一个为什么代理不了?

当本地起了2个node express服务,用nginx配置proxy_pass时候。只能代理成功第一个,第二个代理不成功,什么原因。
配置如:

server {
    listen 80;
    server_name your_domain.com;

    location /app1 {
        proxy_pass http://localhost:3001;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location /app2 {
        proxy_pass http://localhost:3002;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    # 可以添加更多的 location 块来配置更多的应用程序

    # 其他配置...
}
阅读 1.4k
2 个回答

原因是location 中 proxy_pass 结尾带/接不带的区别,会导致路径不一致找不到。

目测没什么问题。直接在服务器上 curl http://localhost:3002 可以么?

另外 app2 有处理 URL 么?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题