nginx实时流量拷贝ngx_http_mirror_module

news2024/11/24 17:31:10

参考:
Module ngx_http_mirror_module
Nginx流量拷贝ngx_http_mirror_module模块使用方法详解

ngx_http_mirror_module用于实时流量拷贝

请求一个接口,想实时拷贝这个请求转发到自己的服务上,可以使用ngx_http_mirror_module模块。
官网好像就两个指令,

mirror
mirror_request_body

在这里插入图片描述

例子

案例流程:

curl client -> 本地nginx -> 测试服务(这里用的是一个nginx模拟的服务)

~/data/nginx/web/conf/ cat default.conf 

upstream kevin-mirror2 {
    server 192.168.52.133:80;   # 这个实际上是另一个nginx
}
server {

    listen       80;
    listen  [::]:80;
    server_name  localhost;

    access_log  /var/log/nginx/host.access.log  main;

    location ~* \.(jpg|JPG|PNG|jpeg|png|gif)$ {
        root /static;
    }

    location / {
#        root   /usr/share/nginx/html;
#        index  index.html index.htm;
        mirror /mirror;
        proxy_pass http://kevin-mirror2;
    }

    location /mc {
        set            $memcached_key "$uri";
        memcached_pass 192.168.59.213:11211;
    }

    location = /mirror {
        internal;
        access_log /usr/share/nginx/html/mirror.log  main;
        proxy_pass http://kevin-mirror2$request_uri;   # 这里这里要写成http://kevin-mirror2$request_uri,写成http://kevin-mirror2转发到后端就变成了/mirror 
        proxy_pass_request_body off;
        proxy_set_header Content-Length "";
        proxy_set_header X-Original-URI $request_uri;
        proxy_set_header X-Real-IP $remote_addr;
    }


    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

(p38)  ~/data/nginx/web/conf/ 

  1. 请求镜像端点,返回404
    在这里插入图片描述
    本地nginx显示404
    在这里插入图片描述
  2. 访问/本地nginx返回页面
  • 本地nginx返回页面在这里插入图片描述
  • 本地nginxnginx的日志
    在这里插入图片描述
  • 代理的测试服务。因为是测试,我把请求都转到了测试nginx上,这里可以看到的确有两个请求过来。
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1523277.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

本地用AIGC生成图像与视频

最近AI界最火的话题,当属Sora了。遗憾的是,Sora目前还没开源或提供模型下载,所以没法在本地跑起来。但是,业界有一些开源的图像与视频生成模型。虽然效果上还没那么惊艳,但还是值得我们体验与学习下的。 Stable Diffu…

python3GUI--qt仿暴风影音视频播放器By:PyQt5(附下载地址)

文章目录 一.前言二.环境1.开发环境2.打包环境3.运行环境 三.软件截图1.启动页2.视频播放3.音频播放4.其他1.托盘2.对话框 四.功能总览五.代码展示&心得1.UI设计2.如何防止卡顿3.如何自定义组件 五.思考…

实在智能Agent——RPA终极进化方向

RPA技术备受瞩目,它通过“机器人”自动化了人力执行的重复性、低复杂度任务,解放了员工并降低了企业成本。RPA机器人全天候运行,避免人为错误,高效处理任务,成为处理事务、操作数据、回应查询的理想选择。在管理后台&a…

HTML基础:了解CSS的3种创建方法

你好,我是云桃桃。 CSS,即层叠样式表(Cascading Style Sheets),是一种用于描述网页样式和布局的标记语言。它通过定义样式规则来控制网页元素的外观和排版,包括文字大小、颜色、边距、背景等,从…

mac打开exe文件的三大方法 mac怎么运行exe文件 mac打开exe游戏 macbookpro打开exe

exe文件是Windows系统的可执行文件,虽然Mac系统上无法直接打开exe文件,但是你可以在Mac电脑上安装双系统或者虚拟机来实现mac电脑上运行exe文件。除了这两种方法之外,你还可以在Mac电脑上使用类虚拟机软件打开exe文件,这三种方法各…

基于springboot的高校化学试剂仓储管理系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式 🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 &…

大数据面试题之SQL题

大数据面试题之SQL题 1.有一个录取学生人数表,记录的是每年录取学生人数和入学学生的学制 以下是表结构: CREATE TABLE admit ( id int(11) NOT NULL AUTO_INCREMENT, year int(255) DEFAULT NULL COMMENT ‘入学年度’, num int(255) DEFAULT NULL COMM…

opencv中的图像均值模糊—blur

平均模糊是通过对图像的每个像素及其周围像素的值求平均来实现的。 blur函数通过计算输入图像image中每个像素及其邻域内像素的平均值来工作。 // 图像卷积 void QuickDemo::Conv_image_demo(Mat &image) {Mat dst;blur(image, dst, Size(3, 3), Point(-1, -1));// Point(…

Android 地图SDK 设置中心点和缩放比例

问题 Android 地图SDK 设置中心点和缩放比例 详细问题 笔者进行Android 项目开发,接入高德地图SDK。但是默认在地图所设置的中心点为北京天安门,缩放比例固定。如何修改 期望效果 解决方案 import com.amap.api.maps.model.LatLng; import com.amap…

基于java+springboot+vue实现的学生宿舍管理系统(文末源码+Lw+ppt)23-438

摘 要 伴随着我国社会的发展,人民生活质量日益提高。于是对贵工程学生宿舍进行规范而严格是十分有必要的,所以许许多多的信息管理系统应运而生。此时单靠人力应对这些事务就显得有些力不从心了。所以本论文将设计一套贵工程学生宿舍管理系统&#xff0…

【机器学习300问】35、什么是随机森林?

〇、让我们准备一些训练数据 idx0x1x2x3x4y04.34.94.14.75.5013.96.15.95.55.9022.74.84.15.05.6036.64.44.53.95.9146.52.94.74.66.1152.76.74.25.34.81 表格中的x0到x4一共有5个特征,y是目标值只有0,1两个值说明是一个二分类问题。 关于决策树相关的前置知识&am…

实现一个横向的picker

Picker 选择器显示一个或多个选项集合的可滚动列表,相比于原生 picker,实现了 iOS 与 Android 端体验的一致性。 要实现横向 picker,其实跟纵向 picker差不多,都支持滚动时停留在指定位置,并且支持滚动到边界支持反弹…

代码随想录 贪心算法-难度题目-其他题目

目录 53.最大子数组和 134.加油站 968.监控二叉树 53.最大子数组和 53. 最大子数组和 中等 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个…

HJ212协议C#代码解析实现

HJ212协议C#代码解析实现 HJ212协议是环保中一个非常重要的标准协议(字符串协议),之前写了两篇C HJ212协议解析的相关博文: 环保 HJ212协议解析基于Qt5.14.2的HJ212 TCP服务端接收解析入库程序 最近在学习C#,所以打算…

T1.数据库MySQL

二.SQL分类 2.1 DDL 2.1.1数据库操作 1). 查询所有数据库 show databases ; 2). 查询当前数据库 select database(); 3)创建数据库 create database [if not exists] 数据库名 [default charset 字符集] [collate 排序规则] ; 4)删除数据库 drop database …

【你也能从零基础学会网站开发】Web建站之jQuery进阶篇 jQuery常见属性和方法概述与使用

🚀 个人主页 极客小俊 ✍🏻 作者简介:程序猿、设计师、技术分享 🐋 希望大家多多支持, 我们一起学习和进步! 🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注 jQuery创建新的…

Docker 哲学 - 容器操作 (二)

命令行启动 参数键值之间可以使 " " 或者 空格 卷的挂载是在容器创建时指定的,不能在容器运行时再添加 当加上 --network-alias 设置同一网络下别名参数后 ,inspect 该容器发现 会同步到 容器信息中 2、给容器打日志 docker logs 【-…

PHP+golang开源办公系统CRM管理系统

基于ThinkPHP6 Layui MySQL的企业办公系统。集成系统设置、人事管理、消息管理、审批管理、日常办公、客户管理、合同管理、项目管理、财务管理、电销接口集成、在线签章等模块。系统简约,易于功能扩展,方便二次开发。 服务器运行环境要求 PHP > 7.…

静态库与动态库的制作和使用

个人主页:Lei宝啊 愿所有美好如期而遇 目录 前言 库? 为什么要使用库 静态库 静态库的制作和使用 动态库 动态库的制作和使用 四种方法: 直接将库拷贝(安装)到系统路径中 配置环境变量 软链接 添加配置文件 动态库和静态库同时…

jvm 内存泄露、内存溢出、栈溢出区别

JVM(Java虚拟机)是负责执行Java程序的运行环境。以下是对内存泄露、内存溢出和栈溢出这几个概念的解释: 内存泄露(Memory Leak): 内存泄露指的是程序中分配的内存空间在不再被使用时没有被释放的情况。这可…