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

Nginx子域名反向代理:父目录访问异常及主代理失效问题

解决Nginx子域名反向代理后/_nuxt资源404且主路径代理失效的问题

我来帮你搞定这个问题——你碰到的是Nginx location匹配优先级和代理配置的小坑,下面是修正后的完整配置,再给你唠唠问题出在哪:

修正后的完整Server块配置

server {
    listen 80;
    server_name ~^(?<tenant>.+)\.mysalon\.test$;
    gzip on;
    gzip_types text/plain application/xml text/css application/javascript;
    gzip_min_length 1000;

    # 优先处理/_nuxt/开头的请求,直接代理到后端根目录的对应路径
    location ^~ /_nuxt/ {
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header x-Tenant $tenant;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 1m;
        proxy_connect_timeout 1m;
        proxy_pass http://127.0.0.1:3000/_nuxt/;
    }

    # 其他所有请求代理到/subdomain/路径下
    location / {
        expires $expires;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header x-Tenant $tenant;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 1m;
        proxy_connect_timeout 1m;
        proxy_pass http://127.0.0.1:3000/subdomain/;
    }
}

问题原因和配置说明

  • location匹配优先级是关键:^~这个修饰符会让/_nuxt/的location拥有最高优先级,比普通前缀匹配(比如location /)更早被匹配到。这样当请求是/_nuxt/开头的资源时,会直接走这个块,不会落到后面的location /里,也就不会被错误地代理到/subdomain/_nuxt/路径下,完美解决404问题。
  • 主路径代理失效的坑:你之前出现主路径指向后端根目录的问题,大概率是配置顺序搞反了——如果把location /放在/_nuxt/的前面,或者在新增/_nuxt/的location时不小心改动了主location的proxy_pass配置,就会导致主路径代理异常。按上面的配置,把/_nuxt/的location放在前面,同时保留所有必要的代理头,就能避免这个问题。
  • 别漏了租户变量:在/_nuxt/的location里也要传递x-Tenant变量,万一后端服务需要根据租户信息做处理,也能正常获取到。

这样配置后,访问{tenant}.mysalon.test会正常代理到http://127.0.0.1:3000/subdomain/,而/_nuxt/开头的资源会直接代理到后端根目录下的对应路径,两边都能正常工作啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 08:22:41