1、什么是nginx高可用
(1)需要两台nginx服务器 (2)需要keepalived (3)需要虚拟ip 2、配置高可用的准备工作 (1)需要两台服务器 192.168.56.103 和 192.168.56.104 (2)在两台服务器安装nginx (3)在两台服务器安装keepalived 3、在两台服务器安装keepalived (1)使用yum命令进行安装 进入usr目录下输入如下命令 yum install keepalived –y 查看是否安装上:rpm -q -a keepalived (2)安装之后,在etc里面生成目录keepalived,有文件keepalived.conf
4、完成高可用配置(主从配置) 主服务器与从服务器都要改配置文件 (1)修改/etc/keepalived/keepalivec.conf配置文件 以下内容替换到文件中
global_defs { # 全局定义 notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.17.129 smtp_connect_timeout 30 router_id LVS_DEVEL # 访问的主机名,通过它可以访问到主机 命令:vi /etc/host } # 检测脚本和权重参数 vrrp_script chk_http_port { script "/usr/local/src/nginx_check.sh" # 检查脚本路径 interval 2 #(检测脚本执行的间隔)每隔2秒执行一次脚本 weight 2 # 权重 设置当前服务器的权重 } # 虚拟ip配置 vrrp_instance VI_1 { state MASTER # 主服务器文件写MASTER,备份服务器上将 MASTER 改为 BACKUP interface enp0s8 # 网卡 ,在哪个网卡上绑定虚拟主机的虚拟ip virtual_router_id 51 # 主、备机的virtual_router_id必须相同 priority 100 # 主、备机取不同的优先级,主机值较大,备份机值较小 主100/备可以90 advert_int 1 # 每隔1秒发送一个心跳,查看主服务器是否存活 # 权限校验方式 authentication { auth_type PASS # 使用密码 auth_pass 1111 # 密码1111 } virtual_ipaddress { # 可以绑定多个虚拟ip 192.168.56.50 # VRRP H虚拟ip地址 注意:虚拟ip要和这两个虚拟机在同一网段,即前三个要一致 } }
(2)在/usr/local/src添加检测脚本 文件名为:nginx_check.sh
#!/bin/bash A=`ps -C nginx –no-header |wc -l` if [ $A -eq 0 ];then /usr/local/nginx/sbin/nginx # 检测 nginx 的启动路径 sleep 2 if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then killall keepalived fi fi
(3)把两台服务器上nginx和keepalived启动 启动nginx: ./nginx 启动keepalived: systemctl start keepalived.service 查看keepalived进程:ps -ef | grep keepalived
注意:虚拟ip要和这两个虚拟机在同一网段,即前三个要一致,都是192.168.56
5、最终测试 (1)在浏览器地址栏输入 虚拟ip 地址 192.168.56.50 两台服务器都绑定了这个虚拟ip
(2)把主服务器(192.168.56.103)nginx和keepalived停止 停止keepalived: systemctl stop keepalived.service 停止nginx ./nginx -s stop 浏览器再输入192.168.56.50
配置文件小结: 查看主机名命令:vi /etc/host 查看网卡名命令:ifconfig