美文网首页
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