location ~* /api/(blade-.*)|(ad-[0-9a-z]*-service)/ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_buffering off;
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://fad_gateway;
}
location ~* ^/fad-ssp/api/(blade-.*)|(ad-[0-9a-z]*-service)/ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_buffering off;
rewrite ^/fad-ssp/api/(.*)$ /$1 ;
proxy_pass http://ssp_gateway;
}
使用请求:
/api/balde-a/123
/fad-ssp/api/balde-a/123 ,无论怎么请求都匹配到了第一个location , 是因为
第一个location 的或者用错了|, 导致
/api/(blade-.)|(ad-[0-9a-z]-service)/
成了2个条件, 第一个不匹配, 就会导致第二个匹配.
下面的location根本没有用到.正确的写法如下
location ~* /api/(blade-.|ad-[0-9a-z]*-service)/ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_buffering off;
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://fad_gateway;
}
location ~* ^/fad-ssp/api/(blade-.*)|(ad-[0-9a-z]*-service)/ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_buffering off;
rewrite ^/fad-ssp/api/(.*)$ /$1 ;
proxy_pass http://ssp_gateway;
}
网友评论