目录
前言
Nginx是一款轻量级,高性能的 HTTP 和反向代理服务,也是一个IMAP/POP3/SMTP服务。可实现四、七层负载均衡,同时也支持多种负载均衡算法,如轮询、加权轮询、ip-hash、url-hash、fair等算法。其具有很好的反向代理和负载均衡特性,下面来简单介绍一下Nginx的七层负载均衡规划及简单部署。
一、环境规划
主机 | 功能 |
---|---|
192.168.139.151 | LVS-master + keepalived |
192.168.139.152 | LVS-backup + keepalived |
192.168.139.153 | Nginx代理服务器1 |
192.168.139.154 | Nginx代理服务器2 |
192.168.139.155 | Tomcat后端应用服务1 |
192.168.139.156 | Tomcat后端应用服务2 |
192.168.139.157 | PHP后端应用服务1 |
192.168.139.158 | PHP后端应用服务2 |
二、环境架构
三、环境部署
关闭防火墙及selinux。
3.1 安装Nginx服务
注:两台机器均操作,这里省略第二台机器的操作。
[root@nginx-master ~]# cd /etc/yum.repos.d/
[root@nginx-proxy yum.repos.d]# vim nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
[root@nginx-proxy yum.repos.d]# yum install yum-utils -y
[root@nginx-proxy yum.repos.d]# yum install nginx -y
3.2 安装keepalived实现高可用
注:两台机器均操作。
(1)安装keepalived
[root@nginx-master ~]# yum install -y keepalived
[root@nginx-backup ~]# yum install -y keepalived
(2)对nginx-master端修改配置
[root@nginx-master ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id directory1
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 80
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.139.160/24
}
}
(3)对nginx-backup端修改配置
[root@nginx-backup ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id directory2
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 80
priority 50
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.139.160/24
}
}
(4)主备均启动KeepAlived
此处仅演示了一台,另一台同样操作
[root@nginx-master ~]# chkconfig keepalived on
[root@nginx-master ~]# service keepalived start
3.3 keepalived心跳检测
-
script
[root@nginx-master ~]# vim /etc/keepalived/check_nginx_status.sh #!/bin/bash /usr/bin/curl -I http://localhost &>/dev/null if [ $? -ne 0 ];then # /etc/init.d/keepalived stop systemctl stop keepalived fi [root@nginx-proxy-master ~]# chmod a+x /etc/keepalived/check_nginx_status.sh
-
keepalived使用script
! Configuration File for keepalived global_defs { router_id director1 } vrrp_script check_nginx { script "/etc/keepalived/check_nginx_status.sh" interval 5 } vrrp_instance VI_1 { state MASTER interface ens33 virtual_router_id 80 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.139.160/24 } track_script { check_nginx } }
3.4 部署Tomcat与PHP
这里的部署方法和LVS四层负载均衡的部署方法一样,不再演示。(如果有需要的可以去看一下我上一篇博客《LVS四层负载均衡规划及部署》)
四、环境测试
同样这里测试的结果和LVS四层负载均衡也是一样的,不同的是一个是七层的负载均衡,另一个是四层的负载均衡,其原理和方法基本上是一致的。
4.1 访问Tomcat
4.2 访问PHP
总结
这里我是用Nginx做的七层负载均衡,Nginx我想大家应该都不陌生了,我之前的博客有对Nginx有详细的介绍,如我之前介绍的Nginx的反向代理、负载均衡、动静分离、访问控制等。在这里我结合了keepalived来实现了七层负载均衡的高可用。