You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx配置问题:双Node.js服务器仅其一正常,求修复方案

Nginx反向代理Node.js服务器的问题修复方案

老哥,我看了你贴的Nginx配置,问题其实出在几个细节上,咱们一步步来修:

问题排查点

  • 语法错误:你的server_name www.myhоst.com后面少了分号;,这会导致Nginx配置解析不完整,虽然第一台服务暂时能用,但整体配置逻辑已经有隐患
  • 路径不匹配:你配置的location是/server_2(带下划线),但实际访问的是/server2(无下划线),这俩是完全不同的路径,Nginx找不到对应的转发规则
  • 冗余配置冲突:你在代理location里同时写了root和proxy_pass,这其实是矛盾的——proxy_pass是把请求转发给Node.js服务器处理,而root是让Nginx自己读取本地静态文件,两者一起用会干扰正常的代理逻辑

修正后的完整配置

server { 
    listen 80; 
    server_name www.myhоst.com; # 补上缺失的分号
    location / { 
        proxy_pass http://server1_ip:8080/; # 第一台服务的root和index可移除,Node服务会自行处理响应
    } 
    location /server2 { # 改成和访问路径一致的名称,去掉下划线
        proxy_pass http://server2_ip:5050/; # 移除冗余的root和index配置
    } 
}

最后验证步骤

  1. 先检查配置语法是否正确:执行nginx -t,如果输出test is successful说明配置没问题
  2. 重启Nginx服务:执行systemctl restart nginx(如果是老系统可以用service nginx restart)
  3. 再访问www.myhost.com/server2,应该就能正常转发到第二台Node.js服务器了

内容的提问来源于stack exchange,提问作者Viktor Gnativ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:29:36