本次nginx环境是在 VM16 下的 Ubuntu 20.04 和 CentOS 7.9 两台虚拟机下搭建完成的
以下是我用Xmind画的nginx工作示意图
高可用性
nginx的高可用性是在使用keepalived的基础上体现的,keepalived会为nginx服务器提供一个虚拟IP,客户端只需要输入该虚拟IP地址,即可访问到nginx服务器进而进行负载均衡和反向代理转发请求。我这里就简单的搭建一下主备服务器模式。
备份服务器 Ubuntu 20.04
执行以下指令来安装 keepalived
apt -y install keepalived
为了待会配置 keepalived,我们需要写一个检验 nginx 是否宕机的脚本以便重启 nginx 或者直接结束keepalived 进程
cd /usr/local/src/
vim nginx_check.sh
shell脚本内容如下
#!/bin/bash
A=`ps -C nginx -no-header | wc -l`
if [ $A -eq 0 ]
then
/usr/local/nginx/sbin/nginx
sleep 2
if [ `ps -C nginx --no-header | wc -l` -eq 0 ]
then
systemctl stop keepalived
fi
fi
然后需要给该shell脚本指定用户和组
接下来需要给shell脚本赋予用户可执行权限
进入 /etc/keepalived ,在 Ubuntu 中此文件夹默认为空,所以需要我们自己创建一个配置文件
cd /etc/keepalived/
vim keepalived.conf
keepalived.conf 的配置信息如下
global_defs {
router_id LVS_DEVEL
}
vrrp_script chk_http_port {
script "/usr/local/src/nginx_check.sh" # nginx服务器检验脚本
interval 2 # 检测脚本执行的间隔
weight 2
}
vrrp_instance VI_1 {
state BACKUP # 备份服务器
interface ens33 # 网卡
virtual_router_id 51 # 主、备机的 virtual_router_id 必须相同
priority 90 # 主、备机取不同的优先级,主机值较大,备份机值较小
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.182.50 # VRRP H 虚拟地址 根据自己的子网地址来分配
}
}
接下来我们就可以开始启动nginx服务器了**(注意一下nginx配置端口有没有开放!!!)**
然后再启动 keepalived 服务
systemctl start keepalived
使用 systemctl status keepalived 查看 keepalived 服务状态(用于调试)