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

Nginx反向代理多服务器:/quicklinks路径访问异常求助

问题原因及解决方案

这个错误的核心原因是Nginx的proxy_pass路径拼接错误,导致静态资源请求被错误转发,最终返回了HTML页面而非JS文件,浏览器解析HTML时自然会碰到<符号报错。

具体来说:

  • 你的location /quicklinks配置中,proxy_pass http://localhost:3001末尾没有加斜杠,当浏览器请求a.com/quicklinks/main_5454354.js时,Nginx会把完整的路径拼接成http://localhost:3001/quicklinks/main_5454354.js发送给后端服务。
  • 但你的3001端口的Next.js应用,其静态资源(比如main_5454354.js)实际是部署在根路径下的(即对应http://localhost:3001/main_5454354.js),并不存在/quicklinks/前缀的资源路径,所以后端返回的是404页面的HTML代码。
  • 浏览器拿到HTML却以为是JS文件,解析时就会抛出Unexpected token '<'的语法错误。

修正方法很简单,给proxy_pass末尾加上斜杠,让Nginx把/quicklinks后面的路径直接拼到后端根路径:

server {
    listen 80;
    server_name a.com;
    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
    }
    location /quicklinks {
        # 末尾添加斜杠
        proxy_pass http://localhost:3001/;
        proxy_set_header Host $host;
    }
}

修改后重载Nginx,访问a.com/quicklinks就能正常加载静态资源了。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 00:51:32