尝试按照https://blog.csdn.net/liuxiao723846/article/details/54925328这里的方法进行无感知版本升级,如下:
location / {
root html;
index index.html index.htm index.php;
proxy_redirect off;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_set_header Connection "";
if ( $query_string ~* "usg=0" ) {
proxy_pass http://local_workera;
}
if ( $query_string ~* "usg=1" ) {
proxy_pass http://local_workerb;
}
if ( $arg_uid ~* "(.*[AB]$)" ) {
proxy_pass http://local_workerf;
}
proxy_pass http://local_workera;
}
我的真实配置如下:
location /test/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_redirect off;
if ( $query_string ~* "revision=2268" ) {
rewrite ^/sh/(.*)$ /$1 break;
proxy_pass http://127.0.0.1:7001/;
break;
}
proxy_pass http://127.0.0.1:7001/;
但是却报错
"proxy_pass" cannot have URI part in location given by regular expression, or inside named location, or inside "if" statement, or inside "limit_except" block in
我根据这个文章https://blog.csdn.net/fjh1997/article/details/98751574去掉了/
,但是无法使用了,可能是path的问题,服务器一直报401用户未登录。
location /test/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_redirect off;
if ( $query_string ~* "revision=2268" ) {
rewrite ^/sh/(.*)$ /$1 break;
proxy_pass http://127.0.0.1:7001;
break;
}
proxy_pass http://127.0.0.1:7001/;
通过看这个文章https://www.cnblogs.com/woshimrf/p/nginx-proxy-rewrite-url.html解决了,最终添加了rewrite
location /test/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_redirect off;
if ( $query_string ~* "revision=2268" ) {
rewrite ^/sh/(.*)$ /$1 break;
proxy_pass http://127.0.0.1:7001;
break;
}
proxy_pass http://127.0.0.1:7001/;