记录nginx一次正则表达式使用错误导致的问题

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;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容