Nginx 1.13.4 中引入ngx_http_miror_module模块来支持应用层的流量复制。该模块通过 mirror 配置指令来实现流量复制。如下图,可以通过下面配置来实现复制 proxy.local 流量到 test.local

upstream backend {
server backend.local:10000;
}
upstream test_backend {
server test.local:20000;
}
server {
server_name proxy.local;
listen 8000;
location / {
mirror /mirror;
proxy_pass <http://backend>;
}
location = /mirror {
internal;
proxy_pass http://test_backend$request_uri;
}
}
其中每一条mirror配置项对应用户请求的一个副本,可以通过配置多次mirror指令来实现“流量放大”的效果。当然,你也可以将多个副本转发给不同的后端目标系统