美文网首页
Nginx 镜像流量 --- http_mirror_modul

Nginx 镜像流量 --- http_mirror_modul

作者: 邵增卫 | 来源:发表于2020-03-22 10:09 被阅读0次

背景


Nginx 1.13.4 官方发布时增加了http_mirror_module模块,通过mirror模块,可以实现复制原始请求发送到一个特定的环境,同时Nginx会忽略这个复制的请求的返回值。

利用这一功能我们可以在对线上流量就行copy,基于这些流量,我们可以做版本发布前的预先验证或者进行放大后的压测。

How to use it


下载1.13.4以后版本的Nginx,安装完成之后,修改Nginx的配置文件nginx.conf如下

http {
    upstream mirror_server {
        server mirror_server_host:8080;
    }

    upstream main_server {
        server main_server1:8080;
        server main_server2:8080 backup;
    }

     server {
        listen       8080;
        server_name  localhost;

        location /access {
           mirror /mirror;
           proxy_pass http://main_server;
        }

        location = /mirror {
           internal;
           proxy_pass http://mirror_server$request_uri;
           proxy_set_header X-Original-URI $request_uri;
        }
    }
}

Server监听8080端口,当收到所有以/access 开头的请求时,根据location / 的配置,将请求转发至main_server 服务器Group的同时,复制流量转发至 location = /mirror; 在mirror配置块中internal表示,该请求为内部请求,如果是外部请求则直接报错, $request_uri则表示,将原始请求的拼接在mirror_server之后,proxy_set_header 则表示添加一个header,最后转发至mirror_server 。

相关文章

网友评论

      本文标题:Nginx 镜像流量 --- http_mirror_modul

      本文链接:https://www.haomeiwen.com/subject/jbrmyhtx.html