- nginx 1.13.4及后续版本内置ngx_http_mirror_module模块,提供流量镜像(复制)的功能。
- 源站请求,直接原路返回;正常配置下,mirror请求不影响源站请求及响应,源站server将流量复制到mirror站后,两者不再有任何交集。镜像地址的响应不会返回到请求者,请求者仍然接收主体地址的响应
nginx.conf配置如下
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8080;
server_name localhost;
location / {
# 流量复制
mirror /mirror;
mirror /mirror2;
mirror_request_body on;
# 设置主体地址
proxy_pass http://127.0.0.1:8081;
}
# 镜像站点1
location = /mirror {
internal;
# 设置镜像地址
proxy_pass http://127.0.0.1:8082$request_uri;
proxy_pass_request_body on;
proxy_set_header X-Original-URI $request_uri;
}
# 镜像站点2
location = /mirror2 {
internal;
# 设置镜像地址
proxy_pass http://127.0.0.1:8083$request_uri;
proxy_pass_request_body on;
proxy_set_header X-Original-URI $request_uri;
}
}
}
修改主体地址和镜像地址后即可使用。
另,此nginx对外暴露地址为 localhost:8080,如果需要修改则修改http.server.listen和http.server.server_name