NGINX $is_args $args 不适用于多个位置
NGINX $is_args $args not working with multiple locations
我正在尝试使用 nginx 托管两个 React 应用程序,一切正常,需要查询参数 ?test=1
location / {
alias /root/phone_build/;
index index.html;
try_files $uri /index.html$is_args$args =404;
}
location /web_build {
alias /root/web_build/;
index index.html;
try_files $uri /index.html$is_args$args =404;
}
#location / {
location /api {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_read_timeout 300s;
proxy_send_timeout 300s;
proxy_connect_timeout 300s;
proxy_cache_bypass $http_upgrade;
}
我试过 ?$query_string 但还是不行。有什么建议吗?谢谢你
您使用的 try_files
不正确。 file 项匹配文件名,不需要 $is_args$args
,否则,当您向请求添加查询字符串时,您将简单地强制执行 404
响应。
此外,使用 root
而不是 alias
。 alias
directive 仅在特殊情况下才需要。
尝试:
index index.html;
location / {
root /root/phone_build;
try_files $uri /index.html =404;
}
location /web_build {
root /root;
try_files $uri /web_build/index.html =404;
}
location /api {
...
}
我正在尝试使用 nginx 托管两个 React 应用程序,一切正常,需要查询参数 ?test=1
location / {
alias /root/phone_build/;
index index.html;
try_files $uri /index.html$is_args$args =404;
}
location /web_build {
alias /root/web_build/;
index index.html;
try_files $uri /index.html$is_args$args =404;
}
#location / {
location /api {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_read_timeout 300s;
proxy_send_timeout 300s;
proxy_connect_timeout 300s;
proxy_cache_bypass $http_upgrade;
}
我试过 ?$query_string 但还是不行。有什么建议吗?谢谢你
您使用的 try_files
不正确。 file 项匹配文件名,不需要 $is_args$args
,否则,当您向请求添加查询字符串时,您将简单地强制执行 404
响应。
此外,使用 root
而不是 alias
。 alias
directive 仅在特殊情况下才需要。
尝试:
index index.html;
location / {
root /root/phone_build;
try_files $uri /index.html =404;
}
location /web_build {
root /root;
try_files $uri /web_build/index.html =404;
}
location /api {
...
}