JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

流量拷贝怎么办?Nginx模块mirror来助力-10

wys521 2024-10-16 14:41:05 精选教程 28 ℃ 0 评论

大家在工作中是不是也有这样的需求,复制线上流量到测试环境。

这个时候Nginx的mirror模块就可以帮上忙了。

这个模块默认也是编译进Nginx中的,可以通过--without-http_mirror_module 为什么我之前都不知道呢!

生效阶段:precontent

那这个模块是怎么做到的呢?

它是在处理请求的时候,生成一个子请求访问其他服务,对子请求的返回值不做任何处理。

Syntax: mirror $uri | off;  // 这里的url 就是子请求去访问的地址。
Default: mirror off;
Context: http, server, location
Syntax: mirror_request_body on | off;    // 这里主要是控制转发子请求的时候是否带上body.
Default: mirror_request_body on;  // 默认是带上body的
Context: http, server, location   // 这2个指令出现的上下文可以在 http server location中

下面我们来看一个简单的例子:

我们先创建一个vhost监听端口

server {
    listen 9999;
    location / {
        return 200 'mirror response!';
    }
}

再修改现有的vhost 利用mirror模块进行转发子请求

server {
    location / {
        mirror /upmirror;
        mirror_request_body off;
    }
    location = /upmirror {
        internal;
        proxy_pass http://127.0.0.1:9999$request_uri;
        proxy_pass_request_body off;
       proxy_set_header Content-Length "";
       proxy_set_header X-Original-URI $request_uri;
    }
}



#程序员##Nginx#

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表