关于nginx:Nginx流量复制

1次阅读

共计 1381 个字符,预计需要花费 4 分钟才能阅读完成。

1. 需要

将生产环境的流量拷贝到预上线环境或测试环境,这样做有很多益处,比方:

  • 能够验证性能是否失常,以及服务的性能;
  • 用真实有效的流量申请去验证,又不必造数据,不影响线上失常拜访;
  • 这跟灰度公布还不太一样,镜像流量不会影响实在流量;
  • 能够用来排查线上问题;
  • 重构,如果服务做了重构,这也是一种测试形式;
  • 为了实现流量拷贝,Nginx 提供了 ngx_http_mirror_module 模块

2. 源码装置

yum 装置没有蕴含咱们所需的 ngx_http_mirror_module 模块,因而,真正要应用的时候最好还是采纳自定义装置,即从源码构建
首先,下载源码 http://nginx.org/en/download….
接下来,编译装置,例如:

./configure
    --sbin-path=/usr/local/nginx/nginx
    --conf-path=/usr/local/nginx/nginx.conf
    --pid-path=/usr/local/nginx/nginx.pid
    --with-http_ssl_module
    --without-http_limit_req_module
    --without-http_mirror_module
    --with-pcre=../pcre-8.43
    --with-zlib=../zlib-1.2.11
    --add-module=/path/to/ngx_devel_kit
    --add-module=/path/to/lua-nginx-module

make & make install

3. 配置

upstream api.abc.com {server 127.0.0.1:8080;}

upstream tapi.abc.com {server 127.0.0.1:8081;}

server {
    listen 80;
   # 源站点
    location /api {
        proxy_pass http://api.cjs.com;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        # 流量复制
    mirror /newapi; 
    mirror /mirror2;
    mirror /mirror3;

    # 复制申请体
    mirror_request_body on; 
    }

    # 镜像站点
    location /tapi {
        proxy_pass http://tapi.cjs.com$request_uri;
        proxy_pass_request_body on;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

4. 文档

  • Nginx 文档
    http://nginx.org/en/docs/
    http://nginx.org/en/docs/http…
    http://nginx.org/en/docs/begi…
    http://nginx.org/en/docs/http…
    http://nginx.org/en/docs/conf…
正文完
 0