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

Nginx同端口配置多Node.js应用 访问/dictionary路径404问题

错误原因

你遇到的404错误是Nginx的proxy_pass路径拼接规则导致的:

  • 当proxy_pass的目标地址末尾不带斜杠时,Nginx会将location匹配到的完整路径原样转发给上游服务。你当前访问example.com/dictionary/时,实际转发给3001端口Node.js应用的请求路径是/dictionary/,而该应用没有对应前缀的路由,因此返回错误。
  • 你通过8088、444端口测试时正常,是因为这两个端口的配置直接把根路径请求转发给3001,转发路径和应用路由匹配。
修复方案

只需修改80/443端口server块下/dictionary/路径对应的proxy_pass配置,在目标地址末尾添加斜杠即可。添加斜杠后Nginx会自动去掉/dictionary/前缀再转发请求,和8088端口的转发逻辑保持一致。

修改后的完整Nginx配置如下:

http {
        server {
                listen 80;
                listen 443 ssl;
                        ssl_certificate /etc/..;
                        ssl_certificate_key /etc/..;
                location /dictionary/ {
                        # 仅修改此行,末尾添加斜杠
                        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 / {
                        proxy_pass http://localhost:3000;
                        # 同上,也可补充上述proxy_set_header配置
                        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;
                }
        }
        
        server {
                listen 8088;
                listen 444 ssl;
                        ssl_certificate /etc/..;
                        ssl_certificate_key /etc/..;
                location / {
                        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;
                }
        }
}

events { }

修改后执行nginx -s reload重载配置即可生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:51:00