https://developer.aliyun.com/article/885599?spm=a2c6h.24874632.expert-profile.315.7c46cfe9h5DxWK

2022-04-14 322举报

简介: Nginx四层负载均衡就是实现通过访问某个ip的端口转发至对应的服务器上,如图当访问10.0.0.5的5555端口就会跳转至web服务器172.1.16.7的22号端口,当访问10.0.0.5的6666端口就会转发到mysql服务器的3306端口,高效的保护了内网的安全。 为什么企业不再使用lvs而选择使用Nginx做负载 1.Nginx既支持四层又支持七层 2.很多企业使用云平台,但是云平台网络环境不支持lvs 3.都是用Nginx方便统一管理

1.Nginx四层负载均衡原理

Nginx四层负载均衡就是实现通过访问某个ip的端口转发至对应的服务器上,如图当访问10.0.0.5的5555端口就会跳转至web服务器172.1.16.7的22号端口,当访问10.0.0.5的6666端口就会转发到mysql服务器的3306端口,高效的保护了内网的安全。

为什么企业不再使用lvs而选择使用Nginx做负载

1.Nginx既支持四层又支持七层

2.很多企业使用云平台,但是云平台网络环境不支持lvs

3.都是用Nginx方便统一管理

2.Nginx四层负载均衡配置

一般做四层负载均衡的都是一对一的连接,比如ssh、mysql,明确需要登录某台主机的某个端口来做操作,可以实现一个跳板机

注意:四层负载均衡配置stream只能配置一个,也就是说关于四层负载的配置文件只允许有一个

2.1.四层负载均衡语法

stream {
upstream name { //定义虚拟资源池
server ip:port;
} server { //调用虚拟资源池
listen port;
proxy_pass name; //由于是四层负载所以不用加http://
}
}

2.2.实例

配置四层负载,实现访问192.168.810.210的6666端口就会访问到172.16.1.20的22号端口

[root@localhost nginx]# mkdir conf.c

在nginx.conf文件中写入这两行,主要要写在events下面http上面,stream与http同级
[root@localhost nginx]# vim nginx.conf
#四层负载
include /etc/nginx/conf.c/*.conf; [root@localhost conf.c]# vim ssh.conf
stream {
upstream lb_ssh_20 {
server 172.16.1.20:22;
} upstream lb_ssh_30 {
server 172.16.1.30:22;
} upstream lb_ssh_40 {
server 172.16.1.40:22;
} server {
listen 6666;
proxy_pass lb_ssh_20;
} server {
listen 7777;
proxy_pass lb_ssh_30;
} server {
listen 8888;
proxy_pass lb_ssh_40;
}
} [root@localhost conf.c]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@localhost conf.c]# systemctl reload nginx

效果:

666端口7777端口3.Nginx负载均衡TCP实战

需求概述

1.通过访问负载均衡的6666端口,实际是后端的web01的22端口在提供服务。

2.通过访问负载均衡的7777端口,实际是后端的web02的22端口在提供服务。

3.通过访问负载均衡的8888端口,实际是后端的web03的22端口在提供服务。

2.通过访问负载均衡的9999端口,实际是后端的mysql的3306端口在提供服务。

3.1.四层负载均衡配置

[root@localhost conf.c]# vim ssh_mysql.conf
stream {
upstream ssh_20 { //定义web01的ssh连接池
server 172.16.1.20:22;
}
upstream ssh_30 { //定义web02的ssh连接池
server 172.16.1.30:22;
}
upstream ssh_40 { //定义web03的ssh连接池
server 172.16.1.40:22;
}
upstream mysql_20 { //定义mysql的ssh连接池
server 172.16.1.20:3306;
} server {
listen 6666;
proxy_pass ssh_20;
proxy_timeout 60s;
proxy_connect_timeout 30s;
} server {
listen 7777;
proxy_pass ssh_30;
proxy_timeout 60s;
proxy_connect_timeout 30s;
} server {
listen 8888;
proxy_pass ssh_30;
proxy_timeout 60s;
proxy_connect_timeout 30s;
} server {
listen 9999;
proxy_pass mysql_20;
proxy_timeout 60s;
proxy_connect_timeout 30s;
}
} [root@localhost conf.c]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@localhost conf.c]# systemctl reload nginx

3.2.效果

  • 1.通过访问负载均衡的6666端口,实际是后端的web01的22端口在提供服务。2.通过访问负载均衡的7777端口,实际是后端的web02的22端口在提供服务。
  • 3.通过访问负载均衡的8888端口,实际是后端的web03的22端口在提供服务。
  • 4.通过访问负载均衡的9999端口,实际是后端的mysql的3306端口在提供服务。

 

[转帖]Nginx四层负载均衡详解的更多相关文章

  1. Nginx代理功能与负载均衡详解

    序言 Nginx的代理功能与负载均衡功能是最常被用到的,关于nginx的基本语法常识与配置已在上篇文章中有说明,这篇就开门见山,先描述一些关于代理功能的配置,再说明负载均衡详细. Nginx代理服务的 ...

  2. Nginx 反向代理与负载均衡详解

    序言 Nginx的代理功能与负载均衡功能是最常被用到的,关于nginx的基本语法常识与配置已在Nginx 配置详解中有说明,这篇就开门见山,先描述一些关于代理功能的配置,再说明负载均衡详细. Ngin ...

  3. Docker Swarm 负载均衡详解 or 模式选择

    Docker Swarm 负载均衡详解 Swarm模式内置DNS组件,可以自动为集群中的每个服务分配DNS记录. Swarm manager使用内部负载均衡,根据服务的DNS名称在集群内的服务之间分发 ...

  4. nginx四层负载均衡配置

    nginx四层负载均衡配置代理Mysql集群 环境如下: ip 192.168.6.203 Nginx ip 192.168.6.*(多台) Mysql 步骤一 查看Nginx是否安装stream模块 ...

  5. Spring Cloud:使用Ribbon实现负载均衡详解(下)

    在上一篇文章(Spring Cloud:使用Ribbon实现负载均衡详解(上))中,我对 Ribbon 做了一个介绍,Ribbon 可以实现直接通过服务名称对服务进行访问.这一篇文章我详细分析一下如何 ...

  6. Nginx四层负载均衡概述

    目录 Nginx四层负载均衡概述 什么是负载均衡 负载均衡应用场景 四层,七层集群架构 四层负载均衡总结 Nginx如何配置四层负载均衡 nginx四层负载均衡端口转发 Nginx四层负载均衡概述 什 ...

  7. 14、Nginx四层负载均衡

    1.Nginx四层负载均衡基本概述 1.1.什么是四层负载均衡 四层负载均衡基于传输层协议包来封装的(如:TCP/IP),那我们前面使用到的七层是指的应用层,它的组装在四层基础之上,无论四层还是七层都 ...

  8. Nginx四层负载均衡

    目录 Nginx四层负载均衡概述 Nginx如何配置四层负载均衡 使用nginx四层负载均衡实现tcp的转发 Nginx四层负载均衡概述 什么是四层负载均衡 四层负载均衡是基于传输层协议包来封装的(如 ...

  9. Nginx负载均衡详解

     upstream mysvr {  server 192.168.10.121:3333; server 192.168.10.122:3333; } server { .... location ...

  10. [转帖]nginx服务器安装及配置文件详解

    nginx服务器安装及配置文件详解 http://seanlook.com/2015/05/17/nginx-install-and-config/  发表于 2015-05-17 |  更新于: 2 ...

随机推荐

  1. 技术驱动,数据赋能,华为云GaussDB给世界一个更优选择

    摘要:5月16日,"数智深耕 让美好发生 2023华为云城市峰会广州站"成功举行. 5月16日,"数智深耕 让美好发生 2023华为云城市峰会广州站"成功举行. ...

  2. 基于LiteOS Studio零成本学习LiteOS物联网操作系统

    摘要:大家在学习物联网操作系统开发的时候,都不得不准备一套开发板和仿真器,也是一笔不小的投资.LiteOS社区现在对外开放了对Qemu模拟器的适配工程,在不使用开发板的情况下,也可以搭建LiteOS开 ...

  3. 解析数仓lazyagg查询重写优化规则

    摘要:为了降低调优难度,提升产品易用性,GaussDB(DWS)提供了lazyagg查询重写优化规则. 本文分享自华为云社区<GaussDB(DWS) lazyagg查询重写优化解析[这次高斯不 ...

  4. CANN 5.0硬核技术抢先看

    摘要:2021年12月,CANN5.0版本也将与大家正式见面,通过软硬件协同优化,该版本将会实现训练性能再翻倍,凭实力展现AI领域的「中国速度」! 本文分享自华为云社区<CANN 5.0硬核技术 ...

  5. 十问ByteHouse:如何基于ClickHouse玩转向量检索?

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 向量检索被广泛使用于以图搜图.内容推荐以及大模型推理等场景.随着业务升级与 AI 技术的广泛使用,用户期望处理的向 ...

  6. 如何通过命令部署.Net

    如何通过命令部署.net3.5组件服务 问题:系统安装.net一直报错,无法安装该功能. 问题现象: 终极解决方案: 将windows10系统镜像文件拷贝在硬盘或者U盘中,鼠标右击选择"装载 ...

  7. STM32CubeMX教程17 DAC - 输出三角波噪声波

    1.准备材料 正点原子stm32f407探索者开发板V2.4 STM32CubeMX软件(Version 6.10.0) keil µVision5 IDE(MDK-Arm) ST-LINK/V2驱动 ...

  8. 【Cpp】RTTI 机制原理解析

    References Baidu Wiki C++中的RTTI机制详解 RTTI 推荐阅读: RTTI 原理 推荐阅读:C++中的RTTI机制 什么是RTTI机制? RTTI 是"Runti ...

  9. 活动回顾|阿里云 Serverless 技术实战与创新成都站回放&PPT下载

    7月29日"阿里云 Serverless 技术实战与创新"成都站圆满落幕.活动受众以关注 Serverless 技术的开发者.企业决策人.云原生领域创业者为主,活动形式为演讲.动手 ...

  10. Serverless 时代开启,云计算进入业务创新主战场

    作者 | 于洪涛 "我们希望让用户做得更少而收获更多,通过 Serverless 化,让企业使用云服务像用电一样简单." Serverless 化正在成为全新的软件研发范式,阿里云 ...