nginx四层负载
负载均衡的作用
在OSI七层模型中,四层是传输层,传输层使用的是端口到端口的通信方法,四层负载均衡就是在传输层做端口转发(端口映射)
四层负载应用场景
1.四层+七层做负载均衡,四层均衡可以保证七层的负载均衡的高可用性
2.tcp协议的负载均衡,有些请求是TCP协议的,或者说这些请求只需要使用四层进行端口的转发,所以使用四层负载均衡
负载均衡软件
nginx
四层负载(nginx 1.9版本以后有stream模块,才可以做四层负载均衡)
stream
七层负载
upstream
LVS
四层负载
HAproxy
四层负载
七层负载
四层负载均衡配置
主机名 |
WanIP |
LanIP |
角色 |
安装应用 |
lb01 |
10.0.0.5 |
172.16.1.5 |
七层负载 |
nginx |
lb02 |
10.0.0.6 |
172.16.1.6 |
四层负载 |
nginx |
web01 |
10.0.0.7 |
172.16.1.7 |
web网站 |
nginx、php |
web02 |
10.0.0.8 |
172.16.1.8 |
web网站 |
nginx、php |
db01 |
10.0.0.51 |
172.16.1.51 |
数据库 |
mariadb |
部署四层负载均衡(lb02)
1.添加nginx官方源
[root@lb02 ~]
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
2.安装nginx
yum install -y nginx
3.配置四层负载均衡
include /etc/nginx/stream/ji.conf;
mkdir /etc/nginx/stream
stream {
upstream backend {
server 172.16.1.5:80;
}
server {
listen 90;
proxy_pass backend;
}
}
4.启动nginx
systemctl start nginx
5.浏览器访问10.0.0.6的90端口

使用stream做端口转发
实现22端口转发
1.编写配置文件实现端口映射web02的22端口
stream {
upstream web02_ssh {
server 172.16.1.8:22;
}
server{
listen 888;
proxy_pass web02_ssh;
}
}
2.重启nginx
systemctl reload nginx
3.根据配置文件使用lb02的ip和端口登录web02服务器

实现数据库的3306转发
1.编写配置文件
stream {
upstream db01_mariadb {
server 172.16.1.51:3306;
}
server {
listen 3333;
proxy_pass db01_mariadb;
}
}
2.下载mysql客户端测试连接数据库
[root@web01 ~]
3.通过端口映射进入数据库
mysql -uwt -p123 -h10.0.0.6 -P3333

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)