Nginx 灰度测试
灰度测试在系统重构过程中是必不可少的,很多公司有自己的灰度解决方案。对于初创型或者小型团队,缺少必要的工具,因此这里借用nginx的转发(反向代理)能力做一下灰度测试。
Nginx配置
Nginx配置文件主要分4部分
- main(全局设置): main部分的指令将影响其他所有的设置
- server(主机设置): server部分的指令主要作用于指定的主机和端口
- upstream(负载均衡服务器设置): upstream指令主要作用于负载均衡的设置
- location(指定网页的设置): 主要用于匹配上的网页的设置。首先匹配 =,其次匹配^~, 其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。
proxy_pass
在nginx中配置proxy_pass代理转发时,如果在proxy_pass后面的url加/,表示绝对根路径;如果没有/,表示相对路径,把匹配的路径部分也给代理走。
假设下面四种情况分别用 http://192.168.1.1/proxy/test.html 进行访问。
CASE 1:
1 | location /proxy/ { |
代理到URL:http://127.0.0.1/test.html
CASE 2:
1 | location /proxy/ { |
代理到URL:http://127.0.0.1/proxy/test.html
CASE 3:
1 | location /proxy/ { |
代理到URL:http://127.0.0.1/v1/test.html
CASE 4:
1 | location /proxy/ { |
代理到URL:http://127.0.0.1/v1test.html
灰度粒度
URL级别
1 | location /api_to_gray { |
参数级别
1 | location /api_to_gray { |