示例配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
server {
listen 8080;
access_log /home/work/log/nginx/org.log;
root html/org;
}

server {
listen 8081;
access_log /home/work/log/nginx/mir.log ;
root html/mir;
}

upstream backend {
server 127.0.0.1:8080;
}

upstream test_backend {
server 127.0.0.1:8081;
}

server {
listen 80;
server_name localhost;

# original 配置
location / {
# mirror指定镜像uri为 /mirror
mirror /mirror;
# off|on 指定是否镜像请求body部分(开启为on,则请求自动缓存;)
mirror_request_body off;
# 指定上游server的地址
proxy_pass http://backend;
}

# mirror 配置
location /mirror {
# 指定此location只能被“内部的”请求调用
internal;
# 指定上游server的地址
proxy_pass http://test_backend$request_uri;
# 设置镜像流量的头部
proxy_set_header X-Original-URI $request_uri;
}

}

流量放大

1
2
3
4
5
location / {
mirror /mirror;
mirror /mirror;
proxy_pass http://backend;
}

参考资料