nginx通过四层代理实现端口转发

2023-11-09

 

 

公司原有的测试数据库在主机192.168.10.5上边,现在数据库转移到了192.168.10.4上,为了不让各个地方都需要更改地址,现在需要一个四层代理工具,将原来请求到192.168.10.53306端口转发到192.168.10.43306端口。

这个工具,用到了nginx的四层代理。

官方文档:http://nginx.org/en/docs/stream/ngx_stream_core_module.html

四层代理依赖模块ngx_stream_core_module,该模块自1.9.0版开始可用。默认情况下,此模块不构建,应使用配置参数启用 --with-stream

安装过程简示:

[root@linux-node1 src]# tar xf nginx-1.10.3.tar.gz
[root@linux-node1 src]# cd nginx-1.10.3
[root@linux-node1 nginx-1.10.3]# useradd -s /sbin/nologin -M www
[root@linux-node1 nginx-1.10.3]# yum install gcc gcc-c++ zlib-devel pcre-devel openssl openssl-devel -y
[root@linux-node1 nginx-1.10.3]# ./configure --prefix=/usr/local/nginx-1.10.3 --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-file-aio --with-stream
[root@linux-node1 nginx-1.10.3]# make && make install

可以通过nginx -V查看一下是否将上述模块编译进来,如果没有,可以重新编译一下。

来到主配置:

worker_processes 1;
events {
    worker_connections 1024;
}
stream {
    upstream tcp_proxy {
        hash $remote_addr consistent; #远程地址做个hash
        server 192.168.10.4:22;
    }
    server {
        listen 2222;
        proxy_connect_timeout 1s; #后端链接空闲超时断开
        proxy_timeout 10s; #后端连接超时时间
        proxy_pass tcp_proxy;
    }
}

此配置是将本机的2222端口转发到192.168.10.4的22端口,配置之后,试验一下:

[root@7-3 nginx]$ssh -p 2222 root@192.168.10.5
The authenticity of host '[192.168.10.5]:2222 ([192.168.10.5]:2222)' can't be established.
ECDSA key fingerprint is 05:2f:63:e9:87:be:b4:44:d3:d7:77:a0:52:e0:4f:2f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[192.168.10.5]:2222' (ECDSA) to the list of known hosts.
root@192.168.10.5's password:
Last login: Wed Nov 7 15:24:33 2018 from 192.168.10.1
[root@7-2 ~]$hostname -I
192.168.10.4

刚刚设置了10的超时,如果需要的话,可以将之注释掉。

同理,配置数据库端口的转发也就非常简单了:

worker_processes 1;
events {
    worker_connections 1024;
}
stream {
    upstream tcp_proxy {
        hash $remote_addr consistent; #远程地址做个hash
        server 192.168.10.4:3306;
    }
    server {
        listen 3306;
        proxy_connect_timeout 1s;
        # proxy_timeout 10s; #后端连接超时时间
        proxy_pass tcp_proxy;
    }
}

这样一来,用户连接192.168.10.5:3306的时候,就会被转发到192.168.10.4:3306了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nginx通过四层代理实现端口转发 的相关文章

  • Python列表操作中extend和append的区别

    1 用法 append 用于在列表末尾添加新的对象 输入参数为对象 extend 用于在列表末尾追加另一个序列中的多个值 输入对象为元素队列 2 相同点 两个都是对列表即list进行的操作 具体句法可以写为 list1 append obj
  • 解决EXPLORER应用程序错误,桌面出不来

    打开运行 输入CMD 输入for 1 in windir system32 dll do regsvr32 exe s 1 意思是注册所有DLL组件 一般都能解决问题 转载于 https blog 51cto com feifei888 4
  • word文件doc、docx转pdf

    综合类管理系统不管是自研还是外包项目都会被客户或者产品经理要求 实现word导出 excel导出 pdf导出等功能 其实pdf导出呢 有很多种方式 我实现过的就有两种 接下来呢 就说说其中的一种 就是当你已经实现了word导出 或有明确的要
  • 粉丝文化:抖音广告短视频美妆营销中,男明星比女明星更带货?

    1996年 木村拓哉为佳丽宝拍摄了一支口红广告 这条广告轰动一时 代言的口红两个月就卖出了300万支 从此 男明星就成了美妆品牌的宠儿 众多美妆品牌开始启用男明星代言人 男明星为何有如此强力的带货潜力 美妆品牌如何在短视频时代占得先机 抖音
  • 阿里天池比赛——街景字符编码识别

    文章目录 前言 一 街景字符编码识别 1 目标 2 数据集 3 指标 总结 前言 之前参加阿里天池比赛 好久了 一直没有时间整理 现在临近毕业 趁论文外审期间 赶紧把东西整理了 5月底学校就要让我们滚蛋了 哭哭哭 大运会的牺牲品 一 街景字
  • 赛马游戏的java设计_赛马游戏源码

    0 Intro pos g setClip 10 10 HorseMidlet imgIntro 0 getWidth HorseMidlet i mgIntro 0 getHeight g drawImage HorseMidlet im
  • 面试题记1

    希望各位看客们能积极提供答案 1 125874和它的两倍251748 包含着同样的数字 只是顺序不同 找出最小的正整数x 使得2x 3x 4x 5x 和6x都包含有相同的数字 2 求100 各位数之和 3 是用从1到9所有数字 将其任意的连
  • Notion?Roam?OneNote? 不要再用这些垃圾做笔记啦

    双向链接 最近因为Roam Research 双向链接在笔记圈子里火了起来 Notion也在准备做了 那么双向链接是什么呢 我用我的我关于管道的一则笔记给大家讲明白 管道的实现 Linux里 管道实现的原理是 Shell进程先调用pipe创
  • 浅谈 qmake 之 shadow build

    shadow build shadow build 是什么东西 就是将源码路径和构建路径分开 也就是生成的makefile文件和其他产物都不放到源码路径 以此来保证源码路径的清洁 这不是qmake独创的东西 cmake中早就使用这个东西了
  • 性能测试_Day_10(负载测试-获得最大可接受用户并发数)

    目录 如何理解负载测试 如何实现负载测试 jpgc Standard Set插件安装 jpgc Standard Set使用方法 负载测试分析指标 获得最大可接受用户并发数 区间值 负载测试分析指标 获得最大可接受用户并发数 真实值 负载测
  • 阅读论文《Deep Bilateral Learning for Real-Time Image Enhancement》

    这是2017 siggraph的一篇论文 寒假boss让我看这篇论文我没怎么看懂 最近在公司实习 发现该论文的成果已经移到手机端上了 效果还非常不错 这里我重新温习了一下这篇论文 发现有许多可以借鉴的地方 是一篇非常不错的论文 这里重新叙述
  • 我碰到avs错误

    1 写好的avs脚本用播发器不能播放 并且报unexpected chatacter 错误 解决办法 1 尽管avs支持汉语文件路径 但是仍要确认标点符号是否为英文状态下 2 将AVS脚本用记事本打开 重新存为并把编码格式修改成ASNI格式
  • 数值计算方法python实现

    包括 泰勒级数展开 差分逼近微分 二分法求解 试位法求解 迭代法求根 牛顿法求根 正割法 贝尔斯托法多项式求跟 多项式回归 牛顿差商插值 拉格朗日插值法 三次样条插值法 二次样条插值法 高斯消元法 求解线性代数方程组 代码在我的github
  • 事件循环与线程 一

    初次读到这篇文章 译者感觉如沐春风 深刻体会到原文作者是花了很大功夫来写这篇文章的 文章深入浅出 相信仔细读完原文或下面译文的读者一定会有收获 由于原文很长 原文作者的行文思路是从事件循环逐渐延伸到线程使用的讨论 译者因时间受限 暂发表有关
  • SnowFlake 算法

    SnowFlake 算法 1 介绍 是 Twitter 开源的分布式 id 生成算法 核心思想 使用一个 64 bit 的 long 型的数字作为全局唯一 id 2 结构 0 0001000000 0000010000 0001000100
  • KVM架构与原理详解

    1 KVM架构 KVM 基本上有两个组件构成 1 kvm 驱动 现在已经是Linux内核的一个模块了 它的作用主要是负责虚拟机的创建 虚拟内存的分配 虚拟CPU寄存器的读写和虚拟cpu的运行 2 另一个组件是 Qemu QEMU是一个通用的
  • Wsl2 Ubuntu18.04图形化界面,亲测成功

    Wsl2 Ubuntu18 04图形化界面 亲测成功 Windows端 Linux端 最后 抖抖索索搞了两天 差点Windows系统都重装 终于搞成功了 参考文献 一定要看 非常感谢这个哥们 成功搞出来了 Windows端 powershe
  • ThreadLoacl

    目录 三 ThreadLoacl 基础 二 InheritableThreadLocal 三 TransmittableThreadLocal 三 ThreadLoacl 基础 在Java的多线程编程中 为保证多个线程对共享变量的安全访问
  • 数据库配置时useUnicode=true&characterEncoding=UTF-8

    数据库连接时经常会写到 jdbc url jdbc mysql localhost 3306 db1 useUnicode true characterEncoding UTF 8 添加的作用是 指定字符的编码 解码格式 例如 mysql数

随机推荐

  • mvvm设计模式总结

    要了解mvvm 首先要了解mvc和mvp 我们也先简单说一下mvc和mvp MVC MVC全名是Model View Controller 是模型 model 视图 view 控制器 controller 的缩写 一种软件设计典范 用一种业
  • HyperLedger Fabric实战(一):基础环境构建

    1 简介 本文档说明了HyperLedger Fabric 1 4 0版本的区块链网络搭建所需的基本环境组件以及安装流程 最后再记录了安装过程中可能会遇到的一些问题 采用的操作系统为ubuntu 18 04 具有参考价值的网站 Hyperl
  • PAT初级1015德才论(C++)

    PAT初级1015德才论 C 代码 include
  • FreeRtos队列,队列集合学习使用

    我们都知道队列可以进行消息的管理 比如在一个task中发消息 另一个task监听队列中是否有消息 这样比读flag的效率要高很多 更好的利用资源 一 介绍一下接下来需要使用到的接口函数 创建队列 使用的是xQueueCreate uxQue
  • Redis-入门与springboot整合

    Redis入门 一 Redis基础命令 二 常用数据类型 1 String类型 2 List类型 3 Set集合 4 hash集合 5 Zset集合 三 Redis发布和订阅 四 新数据类型 1 Bitmaps 2 HyperLogLog
  • Java常用类:System类

    文章目录 System类概述 1 arraycopy 方法 概述 语法 举例 2 currentTimeMillis 方法 概述 语法 举例 3 gc 方法 概述 语法 举例 4 exit int status 方法 概述 语法 举例 Sy
  • openwrt18.06.4配置strongswan对接山石网科(hillstone)记录①

    首先感谢https blog csdn net d9394952 article details 90734469 原贴作者 摸索了一个礼拜 将过程记录如下 首先将路由器连上网 更新opkg root OpenWrt ping www ba
  • aivms--CentOS7.6安装/JDK1.8/ThingsBoard CE /PostgreSQL

    先决条件 yum install y nano wget yum install y https dl fedoraproject org pub epel epel release latest 7 noarch rpm 1 安装JDK8
  • Catowice City【Codeforces 1248 F】【BFS】

    Codeforces Round 594 Div 2 F 一开始是听闻有人说这是一道Tarjan好题 然后就点进来做了 但是想来想去 却想了个另类的法子 我们可以看到 如果N个人都要选择的话 那么每个人都只能是审判者 或者是参赛者 所以 我
  • hutool工具常用API

    hutool工具常用API 依赖 工具API 1 convert 2 DataUtil 3 StrUtil 4 ClassPathResource 5 ReflectUtil 6 NumberUtil 7 BeanUtil 8 CollUt
  • 使用C++11变长参数模板 处理任意长度、类型之参数实例

    变长模板 变长参数是依靠C 11新引入的参数包的机制实现的 一个简单的例子是std tuple的声明 template
  • Python六大基本数据类型介绍

    Python基本数据类型 一 数字型 一 整型 二 浮点型 三 布尔型 四 复数类型 二 字符串 三 列表 四 元组 五 集合 六 字典 一 数字型 一 整型 1 整型 int 在数字中 正整数 0 负整数都称为整型 例 intvar 10
  • 零知识证明zkSNARK

    最近接触学习零知识证明 很是头疼 没有一些背景知识 只能硬看了 而且也没有别的好方法 为什么要学习零知识证明 因为区块链的去中心化 导致信息都是公开透明的 比特币 以太坊 EOS等目前绝大部分项目区块链上的交易都是公开的 发送者的地址 金额
  • 试用版MindMaster思维导图转XMind方法分享

    在用MindMaster做导图的时候主题总是达到上限 于是想换成没有上限的XMind 就打算把已经做好的导图转到XMind上 现在网上的方法是通过导出docx文件或者复制大纲到word中然后再复制到XMind中 但受试用版限制 没办法导出w
  • 调用兄弟目录中的模块

    使用sys path append把父目录的加到模块搜索路径列表中即可 下面是具体原理分析 比如目前的目录结构如下 parDir dir1 test1 py dir2 test2 py 现在我需用在test1 py中导入dir2的test1
  • 合泰BS8116A-3触摸芯片开发踩坑指南

    一 硬件说明 引脚图 接线 说明 由于用到了唤醒检测 所以KEY16引脚用作IRQ中断唤醒功能 未使用引脚拉低 二 IIC配置说明 1 最大波特率 实际单片机配置最好不要设置波特率100Khz容易出错 50Khz就可以了 2 从机地址 注意
  • OpenCV基本知识

    1 OpenCV概述 1 什么是OpenCV 开源C C 计算机视觉库 面向实时应用进行优化 跨操作系统 硬件 窗口管理器 通用图像 视频载入 存储和获取 由中 高层API构成 为Intel 公司的 Integrated Performan
  • Vue ly-tab组件使用

    Vue ly tab组件的使用 目录 Vue ly tab组件的使用 安装 引入 使用 安装 这里使用指定版本安装 如果安装其他版本使用方法可能不一致 npm install ly tab 2 1 2 S 或者 cnpm install l
  • 深入理解采样定理 + Matlab 仿真 Sa 函数的采样与恢复

    建议配合国宝老师的视频食用 信号与线性系统分析 吴大正 郭宝龙 文章目录 1 采样的说明 1 为什么要取样 2 什么是取样 2 采样定理 1 为什么要有奈奎斯特频率 2 什么是采样定理 3 信号的恢复 4 Matlab的Sa函数取样仿真 1
  • nginx通过四层代理实现端口转发

    公司原有的测试数据库在主机192 168 10 5上边 现在数据库转移到了192 168 10 4上 为了不让各个地方都需要更改地址 现在需要一个四层代理工具 将原来请求到192 168 10 5的3306端口转发到192 168 10 4