环境

nginx1.22,centos7.9 由于线上数据的各类问题,不容易在测试环境复现,只好将线上数据,复制转发到测试环境进行验证及问题查询

步骤

  • 流量复制主要依赖ngx_http_mirror_module模块 nginx 1.13.4及后续版本内置ngx_http_mirror_module模块,提供流量镜像(复制)的功能。 没有则编译添加
 ./configure
    --sbin-path=/usr/local/nginx/nginx
    --conf-path=/usr/local/nginx/nginx.conf
.....
    --without-http_mirror_module
make  && make install 
  • 配置复制的请求
               location ^~ /api/ {
                   mirror /mirror;
                   mirror_request_body on;
                   proxy_pass http://192.168.1.100:8080/;
        }

  • 请求的入口,复制到mirror
       location = /mirror {
         internal;
         proxy_pass http://192.168.1.111:8080$request_uri;
         proxy_pass_request_body on;
       }
  • 转发至192.168.1.111的机器进行接收