首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Nginx 流量镜像使用技巧

最近我在研究 Nginx 1.13.4 最新的 mirror 模块,利用 mirror 模块,你可以将线上实时流量拷贝至其他环境同时不影响源站请求的响应,因为 Nginx 会丢弃 mirror 的响应。...Nginx 忽略了镜像请求的响应,所以测试结果会和之前一样。 4. 将流量复制到响应缓慢的后端 继续设想下一种场景:镜像后端不会返回错误响应,仅仅只是响应很缓慢,这时候会对原始请求有影响吗?...为了解释这个现象,有必要来探究一下 Nginx 是怎样实现流量镜像的。...Nginx 如何实现流量镜像 当请求到达 Nginx 时,如果 Nginx 开启了流量镜像功能,它就会将请求复制一份,并根据 mirror location 中的配置来处理这份复制的请求。...总结 这就是我使用 Nginx 的 mirror 模块过程中的一些趟坑经历,本文向你们展示了如何简单地复制所有的流量,以及如何通过 split_client 模块来复制部分流量,同时我还解释了当镜像后端响应缓慢时为什么原始请求会被阻塞

12.4K72

Nginx26】Nginx学习:日志与镜像流量复制

Nginx学习:日志与镜像流量复制 总算到了日志模块,其实这个模块的指令之前我们就用过了,而且也是是非常常见的指令。相信这一块的学习大家应该不会有什么难度。...另一个则是镜像功能,这个估计用过的同学就比较少了,不过也并不是特别的复杂,一会讲到的时候咱们再详细说哦。 今天的两个模块都是包含在 Nginx 源码中的,不需要额外单独编译安装。...其实呀,它就是可以将我们的请求再发给另一个镜像地址,它只管发送,不管那边会有什么响应。就相当于是将流量复制了一份。我们先来看它的配置。 mirror 设置原始请求将被镜像到的 URI。...镜像流量复制测试 好了,直接来测试吧,这个东西要是上面没看懂,那就手动测试一下,不动手,光看概念,不懂的始终还是不懂。我们先准备一个镜像 location 。...那么这个镜像功能可以有什么实际的应用吗?一是可以做流量放大,比如多次请求;二是灰度发布验证,通过镜像到新版来验证新版本是否会报错;三是忽略响应很重要,可以发送一些回调验证之类的请求。

1.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    利用Nginx流量镜像,优雅的接入waf

    这里就要参考网络防火墙,或者入侵检测系统的方法,通过流量镜像的方式,在网络故障处理中,为了更好的分析定位网络问题,我们通常会做流量镜像或者端口镜像,来保存镜像流量,用于分析恶意请求、或抓包故障定位等,我们...web上也可以通过这种方式来做 怎么做呢,有很多开源的流量复制/镜像工具,比如gor、tcpcopy等,都可以用来做流量镜像 但是在Nginx下面,你就没必要这么麻烦了,Nginx早在1.13版本的时候就添加了...Nginx流量镜像模块,很简单,就两个指令 ?...会报upstream请求超时 nginx流量镜像配置就是这么简单,它的流量镜像是只复制镜像,发送到配置好的后端,但是后端响应返回到nginx之后,nginx是自动丢弃掉的,这个在官方文档介绍中就有,这个特性就保证了...,就可以从日志中分析出哪些正常请求会被拦截掉,从而修改waf规则,然后接入到生产数据中,这样可以有效的避免waf的FRR Nginx流量镜像当然不只这种用法,反正流量都给你复制出来了,玩法就比较多了,

    2.2K30

    Nginx流量复制

    需求 将生产环境的流量拷贝到预上线环境或测试环境,这样做有很多好处,比如: 可以验证功能是否正常,以及服务的性能; 用真实有效的流量请求去验证,又不用造数据,不影响线上正常访问; 这跟灰度发布还不太一样...,镜像流量不会影响真实流量; 可以用来排查线上问题; 重构,假如服务做了重构,这也是一种测试方式; 为了实现流量拷贝,Nginx提供了ngx_http_mirror_module模块 安装Nginx 首页...我是这样理解的,这里,mirror本意是镜子、镜像,这里可以理解就像一个镜像站点一样,将所有的请求都收集起来,这个镜像就代表了所有真实有效的原始请求。...有了这个镜像,后续我们才可能用这个镜像去做一些事情,比如重现一下所有的请求,这就实现了把线上的流程复制到别的地方。 官网给出的示例倒是很简单,如下: 1.location / { 2....# 镜像站点 27. location /tapi { 28.

    81120

    使用Dockerfile构建Nginx镜像

    docker构建镜像的方法:  commit、dockerfile   1、使用commit来构建镜像:     commit是基于原有镜像基础上构建的镜像,使用此方法构建镜像的目的:保存镜像里的一些配置信息和修改的信息...相当于一个镜像的快照。   2、使用dockerfile来构建镜像:     dockerfile是快速构建所需(自定义)镜像。...--------------------------------------------------------------------------------  构建Nginx镜像: 创建一个目录,...启动自定义镜像: 使用 docker images 查看构建的镜像: 启动自定义的镜像: [root@docker ~]# docker run -d -p 80:80 --name nginx nginx... Thank you for using nginx. 这样! Nginx镜像就构建成功了!

    76530

    Nginx流量拷贝 - 运维笔记

    一、Nginx的ngx_http_mirror_module模块实现流量复制介绍 Nginx专门提供了ngx_http_mirror_module模块,用来实现流量拷贝。...将生产环境的流量拷贝到预上线环境或测试环境,这样做有很多好处: 可以验证功能是否正常,以及服务的性能; 用真实有效的流量请求去验证,又不用造数据,不影响线上正常访问; 相比于灰度发布,镜像流量不会影响真实流量...ngx_http_mirror_module模块特性: nginx 1.13.4及后续版本内置ngx_http_mirror_module模块,提供流量镜像(复制)的功能。...支持流量放大,做法为:配置多份相同镜像。 相比tcp-copy的优势:无需录制流量,实时可用;配置相当简单。...; proxy_pass http://mirror.kevin.upstream.name; } } 五、Nginx流量拷贝的注意事项 1)mirror镜像配置日志 镜像配置不正确

    3.6K33

    CentOS7安装Docker,运行Nginx镜像、Centos镜像

    q=library查看官方的镜像。...镜像,基于当前系统、Docker,制作的文件集合,即可以是操作系统、程序,如centos镜像、ubuntu镜像、mysql镜像Nginx镜像 5、安装程序镜像,以Nginx为例, (1)下载镜像...,docker pull nginx:1.9 (2)启动容器,docker run -d -p 8080:80 nginx:1.9,把容器内的nginx的80端口,映射到当前服务器的8080端口,当前服务器的...nginx:1.9,浏览器输入http://192.168.0.191:8081/,就可以看到另外一个nginx已启动 (4)到这里就能体现出Docker部署应用和传统部署应用的区别了,传统部署的话...,需要人工拷贝多一份nginx,再配置端口,而Docker部署的话,在已制作好的镜像基础上,一条命令就可以部署一个新的应用 6、安装系统镜像,以centos7为例,因为镜像运行的时候,会用当前系统的各种资源

    6.2K20

    使用Apache或Nginx加密Tomcat流量

    现在输入以下命令打开文件: sudo vi /etc/httpd/conf.d/ssl.conf 在VirtualHost配置块内部,添加一个JkMount指令,将该虚拟主机接收的所有流量传递给我们刚定义的...使用Nginx进行HTTP代理 使用Nginx代理也很容易。虽然Nginx没有用Apache JServ协议的模块,但它可以使用其强大的HTTP代理功能与Tomcat进行通信。...准备部分 您需要先安装Nginx,可以参考如何在CVM上安装Nginx这篇文章。 完成上面步骤后,请继续阅读下面的内容,了解如何将Nginx服务器连接到Tomcat。...第一步:调整Nginx服务器块配置 设置Nginx代理到Tomcat非常简单。...虽然配置单独的Web服务器进程可能会增加服务应用程序所涉及的软件,但它可以显着简化SSL部署保护流量的过程。更多Linux教程请前往腾讯云+社区学习更多知识。

    1.5K60
    领券