Linux运维之路


nignx镜像流量之mirror模块讲解

admin 2019-08-05 417浏览 0条评论
首页/正文
分享到: / / / /

nignx mirror模块

将生产环境流量同步一份到测试环境,同样的测试命令无法模拟不同访问量的情况下对服务器的影响大小

mirror模块可以做到这点 复制一份用户的真实请求,同时用该请求去访问测试环境的压力等,以便于运维人

员发现测试环境的问题

环境搭建

环境准备:

nginx 10.0.0.20  真实环境
nginx 10.0.0.21  测试环境

搭建 10.0.0.20 nginx 生产环境

安装nginx

#第一步: 下载nginx:
#http://nginx.org/en/download.html 


#创建一个目录存放nginx安装包 
mkdir -p /server/tools


#安装包下载:
cd /server/tools
wget http://nginx.org/download/nginx-1.16.0.tar.gz
tar xf nginx-1.16.0.tar.gz
cd nginx-1.16.0

#第二步: 解决软件依赖关系
# openssl-devel -- SSL证书相关依赖包
# pcre-devel  -- 正则相关依赖包
# gd-devel  -- 图片处理相关依赖包

yum install -y pcre pcre-devel openssl openssl-devel gd-devel  zlib-devel gcc

#第三步: 创建nginx进程相关用户
useradd -s /sbin/nologin -M www

#第四步:执行预编译
cd /server/tools/
./configure --prefix=/application/nginx-1.16 --user=www --group=www --with-http_image_filter_module  --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module  


# 第五步:make 编译
make 
echo $?        #这一步可做可不做,返回值为0代表正常 为其他数值为异常

#第六步: 编译安装
make install

#创建软连接,作用在升级新版本时只需要替换软连接,而不需要停止服务更换版本
ln -s /application/nginx-1.16 /application/nginx

#优化nginx启动命令
#添加环境变量:export PATH="$PATH:/application/nginx/sbin"
echo "export PATH="$PATH:/application/nginx/sbin"">>/etc/profile
source /etc/profile

#启动nginx
nginx

启动与关闭 nginx

nginx  启动nginx
nginx -s stop   停止nginx
nginx -s reload  重载nginx

搭建 10.0.0.21 nginx 测试环境

安装nginx

#第一步: 下载nginx:
#http://nginx.org/en/download.html 


#创建一个目录存放nginx安装包 
mkdir -p /server/tools


#安装包下载:
cd /server/tools
wget http://nginx.org/download/nginx-1.16.0.tar.gz
tar xf nginx-1.16.0.tar.gz
cd nginx-1.16.0

#第二步: 解决软件依赖关系
# openssl-devel -- SSL证书相关依赖包
# pcre-devel  -- 正则相关依赖包
# gd-devel  -- 图片处理相关依赖包

yum install -y pcre pcre-devel openssl openssl-devel gd-devel  zlib-devel gcc

#第三步: 创建nginx进程相关用户
useradd -s /sbin/nologin -M www

#第四步:执行预编译
cd /server/tools/
./configure --prefix=/application/nginx-1.16 --user=www --group=www --with-http_image_filter_module  --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module  


# 第五步:make 编译
make 
echo $?        #这一步可做可不做,返回值为0代表正常 为其他数值为异常

#第六步: 编译安装
make install

#创建软连接,作用在升级新版本时只需要替换软连接,而不需要停止服务更换版本
ln -s /application/nginx-1.16 /application/nginx

#优化nginx启动命令
#添加环境变量:export PATH="$PATH:/application/nginx/sbin"
echo "export PATH="$PATH:/application/nginx/sbin"">>/etc/profile
source /etc/profile

#启动nginx
nginx

启动与关闭 nginx

nginx  启动nginx
nginx -s stop   停止nginx
nginx -s reload  重载nginx

测试访问 检查两台服务器运行是否正常

10.0.0.20

10.0.0.21

生产环境server配置

10.0.0.20

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }

}
   server {
        listen       10020;
        location / {
                return 200 'mirror xxxx';
        }

    }

因为用于测试 这里的 return 200 'mirror xxxx'; 仅用于测试 生产环境中 server该怎么配置就怎么配置

复制流量的server配置

10.0.0.21

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
        }

    server {
        listen       8001;
        location / {
            mirror /mirror;
            mirror_request_body off;
        }

# 关键配置 用于将流量传递给测试环境
        location = /mirror {                         
            internal;
            proxy_pass http://10.0.0.20:10020$request_uri;
            proxy_pass_request_body off;
            proxy_set_header Content-Length "";
            proxy_set_header X-Original-URI $request_uri;
        }
# 关键配置
    }
}

访问测试流量复制是否成功

如果通过访问 10.0.0.21的生产环境nginx,而流量也会传递给测试环境的nginx则代表成功

两台机器同时监控 nginx的access_log文件,通过浏览器访问检查文件变化

访问前:

访问后:

最后修改:2019-08-05 15:09:37 © 著作权归作者所有
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付

上一篇

发表评论

评论列表

还没有人评论哦~赶快抢占沙发吧~