小言_互联网的博客

nginx的高可用---Keepalived

395人阅读  评论(0)

目录

环境

一、centos安装keepalived

1、下载keepalived压缩文件

2、解压

3、进入解压后的keepalived目录并构建环境,然后进行编译安装

4、进入配置目录并进行编辑配置文件

5、编辑主机的keepalived.conf核心配置文件,如下

6、创建Nginx的重启脚本

7、给脚本赋予执行权限

8、编辑脚本

9、由于安装keepalived时,是自定义的安装位置,因此需要拷贝一些文件在系统目录中

10、将keepalived加入系统服务并设置开启自启动

11、测试VIP是否生效

二、在ubuntu上安装keepalived

1、安装一些依赖包

2、下载keepalived压缩文件

3、解压

4、进入解压后的keepalived目录并构建环境,然后进行编译安装

5、进入配置目录并进行编辑配置文件

6、编辑从机的keepalived.conf核心配置文件,如下

7、创建Nginx的重启脚本

8、给脚本赋予执行权限

9、编辑脚本

10、由于安装keepalived时,是自定义的安装位置,因此需要拷贝一些文件在系统目录中

12、将keepalived加入系统服务并设置开启自启动

13、只有当主设备宕机后,从设备才能启用,此时主设备已经宕机,检测VIP是否生效


环境

centos作为主设备,ubuntu作为从设备

一、centos安装keepalived

Keepalived官方下载链接:https://www.keepalived.org/download.html

1、下载keepalived压缩文件

# wget https://www.keepalived.org/software/keepalived-2.2.7.tar.gz

2、解压

# tar -zxvf keepalived-2.2.7.tar.gz

3、进入解压后的keepalived目录并构建环境,然后进行编译安装


  
  1. # cd keepalived- 2.2.7
  2. # . /configure
  3. # make & & make install

4、进入配置目录并进行编辑配置文件


  
  1. # cd /root /keepalived /keepalived /etc /keepalived /
  2. # vim keepalived.conf

5、编辑主机的keepalived.conf核心配置文件,如下


  
  1. global_defs {
  2. # 自带的邮件提醒服务,建议用独立的监控或第三方SMTP,也可选择配置邮件发送。
  3. notification_email {
  4. root@localhost
  5. }
  6. notification_email_ from root@localhost
  7. smtp_server localhost
  8. smtp_connect_timeout 30
  9. # 高可用集群主机身份标识(集群中主机身份标识名称不能重复,建议配置成本机IP)
  10. router_id 192.168.75.132
  11. }
  12. # 定时运行的脚本文件配置
  13. vrrp_script check_nginx_pid_restart {
  14. # 之前编写的nginx重启脚本的所在位置
  15. script "check_nginx_pid.sh"
  16. # 每间隔 3秒执行一次
  17. interval 3
  18. # 如果脚本中的条件成立,重启一次则权重- 20
  19. weight - 20
  20. }
  21. # 定义虚拟路由,VI_ 1为虚拟路由的标示符(可自定义名称)
  22. vrrp_instance VI_ 1 {
  23. # 当前节点的身份标识:用来决定主从(MASTER为主机,BACKUP为从机)
  24. state BACKUP
  25. # 绑定虚拟IP的网络接口,根据自己的机器的网卡配置
  26. interface ens 33
  27. # 虚拟路由的ID号,主从两个节点设置必须一样
  28. virtual_router_id 240
  29. # 填写本机IP
  30. mcast_src_ip 192.168.75.132
  31. # 节点权重优先级,主节点要比从节点优先级高
  32. priority 90
  33. # 优先级高的设置nopreempt,解决异常恢复后再次抢占造成的脑裂问题
  34. nopreempt
  35. # 组播信息发送间隔,两个节点设置必须一样,默认 1s(类似于心跳检测)
  36. advert_int 1
  37. authentication {
  38. auth_ type PASS
  39. auth_pass root
  40. }
  41. # 将track_script块加入instance配置块
  42. track_script {
  43. # 执行Nginx监控的脚本
  44. check_nginx_pid_restart
  45. }
  46. virtual_ipaddress {
  47. # 虚拟IP(VIP),也可扩展,可配置多个。
  48. 192.168.75.240
  49. }
  50. }

6、创建Nginx的重启脚本

# vim check_nginx_pid.sh

7、给脚本赋予执行权限

# chmod +x /root/keepalived/keepalived/etc/keepalived/check_nginx_pid.sh

8、编辑脚本


  
  1. #! /bin /sh
  2. # 通过ps指令查询后台的nginx进程数,并将其保存在变量nginx_ number
  3. nginx_ number =`ps -C nginx --no-header | wc -l`
  4. # 判断后台是否还有Nginx进程在运行
  5. if [ $nginx_ number -eq 0 ]; then
  6. # 如果后台查询不到`Nginx`进程存在,则执行重启指令
  7. /usr /local /nginx /sbin /nginx -c /usr /local /nginx /conf /nginx.conf
  8. # 重启后等待 1s后,再次查询后台进程数
  9. sleep 1
  10. # 如果重启后依旧无法查询到nginx进程
  11. if [ `ps -C nginx --no-header | wc -l` -eq 0 ]; then
  12. # 将keepalived主机下线,将虚拟IP漂移给从机,从机上线接管Nginx服务
  13. systemctl stop keepalived.service
  14. fi
  15. fi

9、由于安装keepalived时,是自定义的安装位置,因此需要拷贝一些文件在系统目录中


  
  1. # mkdir /etc /keepalived /
  2. # cp /root /keepalived /keepalived /etc /keepalived /keepalived.conf /etc /keepalived /
  3. # cp /root /keepalived /keepalived /etc /init.d /keepalived /etc /init.d /
  4. # cp /root /keepalived /keepalived /etc /sysconfig /keepalived /etc /sysconfig

10、将keepalived加入系统服务并设置开启自启动


  
  1. # systemctl enable keepalived.service
  2. # systemctl daemon-reload
  3. # systemctl start keepalived.service

11、测试VIP是否生效

二、在ubuntu上安装keepalived

1、安装一些依赖包


  
  1. # apt-get install libssl-dev
  2. # apt-get install openssl
  3. # apt-get install libpopt-dev
  4. # apt-get install libnl-3-dev
  5. # apt-get install libnl-genl-3-dev

2、下载keepalived压缩文件

# wget https://www.keepalived.org/software/keepalived-2.2.7.tar.gz

3、解压

# tar -zxvf keepalived-2.2.7.tar.gz

4、进入解压后的keepalived目录并构建环境,然后进行编译安装


  
  1. # cd keepalived- 2.2.7
  2. # . /configure --profix = /usr /local /keepalived
  3. # make & & make install

5、进入配置目录并进行编辑配置文件


  
  1. # /usr /local /keepalived /etc /keepalived
  2. # vim keepalived.conf

6、编辑从机的keepalived.conf核心配置文件,如下


  
  1. global_defs {
  2. # 自带的邮件提醒服务,建议用独立的监控或第三方SMTP,也可选择配置邮件发送。
  3. notification_email {
  4. root@localhost
  5. }
  6. notification_email_ from root@localhost
  7. smtp_server localhost
  8. smtp_connect_timeout 30
  9. # 高可用集群主机身份标识(集群中主机身份标识名称不能重复,建议配置成本机IP)
  10. router_id 192.168.75.132
  11. }
  12. # 定时运行的脚本文件配置
  13. vrrp_script check_nginx_pid_restart {
  14. # 之前编写的nginx重启脚本的所在位置
  15. script "/usr/local/keepalived/etc/keepalived/check_nginx_pid.sh"
  16. # 每间隔 3秒执行一次
  17. interval 3
  18. # 如果脚本中的条件成立,重启一次则权重- 20
  19. weight - 20
  20. }
  21. # 定义虚拟路由,VI_ 1为虚拟路由的标示符(可自定义名称)
  22. vrrp_instance VI_ 1 {
  23. # 当前节点的身份标识:用来决定主从(MASTER为主机,BACKUP为从机)
  24. state BACKUP
  25. # 绑定虚拟IP的网络接口,根据自己的机器的网卡配置
  26. interface ens 33
  27. # 虚拟路由的ID号,主从两个节点设置必须一样
  28. virtual_router_id 240
  29. # 填写本机IP
  30. mcast_src_ip 192.168.75.132
  31. # 节点权重优先级,主节点要比从节点优先级高
  32. priority 90
  33. # 优先级高的设置nopreempt,解决异常恢复后再次抢占造成的脑裂问题
  34. nopreempt
  35. # 组播信息发送间隔,两个节点设置必须一样,默认 1s(类似于心跳检测)
  36. advert_int 1
  37. authentication {
  38. auth_ type PASS
  39. auth_pass root
  40. }
  41. # 将track_script块加入instance配置块
  42. track_script {
  43. # 执行Nginx监控的脚本
  44. check_nginx_pid_restart
  45. }
  46. virtual_ipaddress {
  47. # 虚拟IP(VIP),也可扩展,可配置多个。
  48. 192.168.75.240
  49. }
  50. }

7、创建Nginx的重启脚本


  
  1. # /usr /local /keepalived /etc /keepalived
  2. # vim check_nginx_pid.sh

8、给脚本赋予执行权限

# chmod +x /usr/local/keepalived/etc/keepalived/check_nginx_pid.sh

9、编辑脚本


  
  1. #! /bin /sh
  2. # 通过ps指令查询后台的nginx进程数,并将其保存在变量nginx_ number
  3. nginx_ number =`ps -C nginx --no-header | wc -l`
  4. # 判断后台是否还有Nginx进程在运行
  5. if [ $nginx_ number -eq 0 ]; then
  6. # 如果后台查询不到`Nginx`进程存在,则执行重启指令
  7. /usr /local /nginx /sbin /nginx -c /usr /local /nginx /conf /nginx.conf
  8. # 重启后等待 1s后,再次查询后台进程数
  9. sleep 1
  10. # 如果重启后依旧无法查询到nginx进程
  11. if [ `ps -C nginx --no-header | wc -l` -eq 0 ]; then
  12. # 将keepalived主机下线,将虚拟IP漂移给从机,从机上线接管Nginx服务
  13. systemctl stop keepalived.service
  14. fi
  15. fi

10、由于安装keepalived时,是自定义的安装位置,因此需要拷贝一些文件在系统目录中


  
  1. # mkdir /etc /sysconfig
  2. # mkdir /etc /keepalived
  3. # cp /usr /local /keepalived /etc /sysconfig /keepalived /etc /init.d /
  4. # cp /usr /local /keepalived /sbin /keepalived /sbin /
  5. # cp /usr /local /keepalived /etc /keepalived /..keepalived.conf /etc /keepalived /
  6. # cp /root /keepalived /keepalived /keepalived.service /lib /systemd /system /

12、将keepalived加入系统服务并设置开启自启动


  
  1. # systemctl enable keepalived
  2. # systemctl start keepalived

13、只有当主设备宕机后,从设备才能启用,此时主设备已经宕机,检测VIP是否生效

主设备未宕机时

 当主设备宕机后


转载:https://blog.csdn.net/m0_63069714/article/details/128907541
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场