引流測試-nginx_mirror鏡像數據


一、背景
最近nginx官網公布了nginx1.13.4最新的ngx_http_mirror_module模塊,利用mirror模塊,業務可以將線上實時訪問流量拷貝至其他環境,基於這些流量可以做版本發布前的預先驗證,進行流量放大后的壓測等等

mirror模塊配置分為兩部分,源地址和鏡像地址配置,配置位置可以為nginx配置文件的http, server, location上下文,配置示例為:
location / {
root html;
index index.html index.htm;
proxy_pass http://192.168.38.47:8080;
mirror /mirror;
mirror_request_body off;
}
 
location /mirror {
internal;
proxy_pass http://192.168.39.47:8080$request_uri;
proxy_set_header X-Original-URI $request_uri;
}
拓撲圖

三、配置說明:

1.original配置
  • location /指定了源uri為/
  • mirror /mirror指定鏡像uri為/mirror
  • mirror_request_body off | on 指定是否鏡像請求body部分,此選項與proxy_request_buffering、fastcgi_request_buffering、scgi_request_buffering和 uwsgi_request_buffering沖突,一旦開啟mirror_request_body為on,則請求自動緩存;
  • proxy_pass 指定數據轉發server的地址
2.mirror配置
  • internal 指定此location只能被“內部的”請求調用,外部的調用請求會返回”Not found” (404)
  • proxy_pass 指定將鏡像數據發送給test server的地址
  • proxy_set_header 設置鏡像流量的頭部
  • 原始uri不會鏡像,可以通過$request_uri變量取得原始請求的uri

四、特別說明

在拓撲圖中6.mirror respones中:

test server 返回的數據,nginx接受之后會丟棄,不會轉發給客戶端;因此鏡像過程不影響用戶的正常使用;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM