这是我当前的Nginx服务器块:
server {
listen 80;
server_name ~^(?<tenant>.+)\.mysalon\.test$;
gzip on;
gzip_types text/plain application/xml text/css application/javascript;
gzip_min_length 1000;
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/;
}
}
它是{tenant}.mysalon.test
到http://127.0.0.1:3000/subdomain/
的反向代理。
问题:
它可以正常工作,但是它为{tenant}.mysalon.test/_nuxt/
中的所有内容返回404,这是因为/_nuxt
不在/subdomain/
目录中,而在父http://127.0.0.1:3000/
目录中。
所以我添加了以下内容:
location ^~ /_nuxt/ {
proxy_pass http://127.0.0.1:3000/_nuxt/;
}
这样,即使在子域上,它也可以访问/_nuxt
。
但是,由于某些原因,这个新的位置块使第一个位置块处于不活动状态。
访问{tenant}.mysalon.test
时,它返回http://127.0.0.1:3000
而不是http://127.0.0.1:3000/subdomain/
。
答案 0 :(得分:0)
我无法告诉您您的第二个location
块为什么会中断工作流程,我看不到此配置有任何问题,但是您可以尝试使用单个location
块并附加{如果请求的URI并非以/subdomain
开头,则{1}}将在此块内作为请求的URI的前缀:
/_nuxt/