Nginx四层负载
什么是四层负载
OSI七层模型,四层是传输层,传输层使用端口到端口的通信方式
四层负载均衡,就是在传输层做端口转发 (端口映射)
四层负载均衡应用场景
1.四层+七层来做负载均衡,四层可以保障七层的高可用;如Nginx就无法保证自己的服务高可用,需要依赖LVS或者keepalive。
2.如: tcp协议的负载均衡,有些请求是TCP协议的 (MysqL、ssh),或者书这些请求只需要使用四层进行端口的转发就可以了,所以使用四层负载均衡。
Nginx四层负载
# 负载均衡软件:
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 |
部署四次负载
# 1.添加Nginx官方源
[root@ib02 Nginx]# vim /etc/yum.repos.d/Nginx.repo
[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
[root@ib02 Nginx]# yum -y install Nginx
# 3.主配置文件添加include
include /etc/Nginx/stream.d/*.conf;
http {...}
# 4.配置四层负载
[root@ib02 Nginx]# vim /etc/Nginx/stream.d/456.conf
stream{
upstream backend {
server 172.16.1.5:80;
}
server{
listen 99;
proxy_pass backend;
}
}
使用stream做端口转发
实现22端口转发
# 在10.0.0.6机器上开456端口,映射到10.0.0.8的22端口
[root@ib02 Nginx]# vim /etc/Nginx/stream.d/456.conf
stream{
upstream web02_ssh{
server 172.16.1.8:22;
}
server {
listen 456;
proxy_pass web02_ssh;
}
upstream backend {
server 172.16.1.5:80;
}
server{
listen 99;
proxy_pass backend;
}
}
映射数据库端口
stream{
upstream web02_ssh{
server 172.16.1.8:22;
}
server {
listen 456;
proxy_pass web02_ssh;
}
upstream backend {
server 172.16.1.5:80;
}
server{
listen 99;
proxy_pass backend;
}
upstream db01_MysqL {
server 172.16.1.51:3306;
}
server {
listem 8848;
proxy_pass db01_MysqL;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。