image.png

1. 需求说明

实现 Nginx 的高可用!

2. 准备工作

  • 需要两台 Liunx 务器;
  • 在两台服务器安装 Nginx
  • 安装教程:https://www.yuque.com/u1511184/wet18p/vlb7wn
  • 在两台服务器安装 keepalived
  • 应用简介:Keepalived 是基于 VRRP 协议的一款高可用软件,Keepalived 配置通过 keepalived.conf 文件完成
  • 安装命令:yum install keepalived –y;
  • 程序目录:安成完成之后会生成 /etc/keepalived/keepalived.conf 配置文件;

3. 主从配置

在两台服务器上分别进行如下操作:

1)修改 /etc/keepalived/keepalivec.conf 配置文件,具体如下:

  1. global_defs {
  2. # 管理员的邮箱号
  3. notification_email {
  4. acassen@firewall.loc
  5. failover@firewall.loc
  6. sysadmin@firewall.loc
  7. }
  8. notification_email_from Alexandre.Cassen@firewall.loc
  9. # 定义邮件服务器
  10. smtp_server 192.168.17.129
  11. # 定义邮件发送超时时间
  12. smtp_connect_timeout 30
  13. # 重点参数:局域网keppalived主机身份标识信息(每台唯一)
  14. router_id LVS_DEVEL
  15. }
  16. vrrp_script chk_http_port {
  17. # 脚本所在路径
  18. script "/opt/script/nginx_check.sh"
  19. # 检测脚本执行的间隔
  20. interval 2
  21. # 权重
  22. weight 2
  23. }
  24. # VRRP协议相关配置
  25. vrrp_instance VI_1 {
  26. # keepalived角色描述信息,可配置参数(主服务器选MASTER,备服务器选BACKUP)
  27. state MASTER
  28. # 将虚拟ip用于哪块网卡,可以使用ifconfig进行查看(第一行第一个单词就是网卡名)
  29. interface eth0
  30. # 表示keepalived家族表示信息,主、备机的virtual_router_id必须相同
  31. virtual_router_id 51
  32. # keepalved服务竞选主备服务器优先级设置(数字越大越优先,例如:主服务器可以100,备服务器可以90)
  33. priority 100
  34. # 主服务器组播包发送间隔时间
  35. advert_int 1
  36. # 主备主机之间的认证表示信息
  37. authentication {
  38. # 采用明文认证机制
  39. auth_type PASS
  40. # 编写明文密码
  41. auth_pass 1111
  42. }
  43. virtual_ipaddress {
  44. # 设置虚拟ip地址信息
  45. 192.168.12.150
  46. }
  47. }

2)在 /opt/script/ 目录下添加检测脚本 nginx_check.sh

  1. #!/bin/bash
  2. A=`ps -C nginx –no-header |wc -l`
  3. if [ $A -eq 0 ];then
  4. /opt/nginx/sbin/nginx
  5. sleep 2
  6. if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
  7. killall keepalived
  8. fi
  9. fi

3)把两台服务器上 Nginxkeepalived 启动:

  1. 启动 Nginx:/opt/nginx/sbin/nginx
  2. 启动 keepalivedsystemctl start keepalived.service