• nginx 搭建高可用集群


    Keepalived+Nginx 高可用集群(主从模式)

    集群架构图

    1、准备两台装有Nginx虚拟机

    2、都需安装Keepalived

    yum install keepalived -y

    查看是否安装成功

    rpm -q -a keepalived

    安装之后,在 etc 里面生成目录 keepalived,有文件 keepalived.conf  

    3、完成高可用配置(主从配置)

    修改/etc/keepalived/keepalivec.conf 配置文件

    主服务配置:keepalivec.conf

    1. global_defs {
    2. notification_email {
    3. acassen@firewall.loc
    4. failover@firewall.loc
    5. sysadmin@firewall.loc
    6. }
    7. notification_email_from Alexandre.Cassen@firewall.loc
    8. smtp_server 192.168.19.129
    9. smtp_connect_timeout 30
    10. router_id LVS_DEVEL
    11. }
    12. vrrp_script chk_http_port {
    13. script "/usr/local/src/nginx_check.sh"
    14. interval 2 #(检测脚本执行的间隔)
    15. weight 2
    16. }
    17. vrrp_instance VI_1 {
    18. state MASTER # 备份服务器上将 MASTER 改为 BACKUP
    19. interface ens33 //网卡
    20. virtual_router_id 51 # 主、备机的 virtual_router_id 必须相同
    21. priority 100 # 主、备机取不同的优先级,主机值较大,备份机值较小
    22. advert_int 1
    23. authentication {
    24. auth_type PASS
    25. auth_pass 1111
    26. }
    27. virtual_ipaddress {
    28. 192.168.19.50 # VRRP H 虚拟地址(非真实物理地址)
    29. }
    30. }

    从服务配置:keepalivec.conf

    1. global_defs {
    2. notification_email {
    3. acassen@firewall.loc
    4. failover@firewall.loc
    5. sysadmin@firewall.loc
    6. }
    7. notification_email_from Alexandre.Cassen@firewall.loc
    8. smtp_server 192.168.19.129
    9. smtp_connect_timeout 30
    10. router_id LVS_DEVEL
    11. }
    12. vrrp_script chk_http_port {
    13. script "/usr/local/src/nginx_check.sh"
    14. interval 2 #(检测脚本执行的间隔)
    15. weight 2
    16. }
    17. vrrp_instance VI_1 {
    18. state BACKUP # 备份服务器上将 MASTER 改为 BACKUP
    19. interface ens33 //网卡
    20. virtual_router_id 51 # 主、备机的 virtual_router_id 必须相同
    21. priority 90 # 主、备机取不同的优先级,主机值较大,备份机值较小
    22. advert_int 1
    23. authentication {
    24. auth_type PASS
    25. auth_pass 1111
    26. }
    27. virtual_ipaddress {
    28. 192.168.19.50 # VRRP H 虚拟地址(非真实物理地址)
    29. }
    30. }

    在/usr/local/src 添加检测脚本,两台虚拟机都要添加

    添加文件:nginx_check.sh

    1. #!/bin/bash
    2. A=`ps -C nginx –no-header |wc -l`
    3. if [ $A -eq 0 ];then
    4. /usr/local/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
    把两台服务器上 nginx 和 keepalived 启动
    重新启动 nginx
    启动 keepalived:
    systemctl start keepalived.service

    检验keepalived是否启动成功

    ps -ef | grep keepalived
    最终测试
    在浏览器地址栏输入 虚拟 ip 地址 192.168.17.50访问
    在master 输入 ip a 可以查看到

     停止主服务器仍可以访问从服务器

    1. systemctl stop keepalived.service
    2. docker stop mynginx

    至此实现nginx高可用集群。

  • 相关阅读:
    当try_files遇上gateway是如何产生火花的
    数据结构:二叉树的基本概念
    postMessage,addEventListener, 前端跨域请求之js代码解析
    计算机毕业设计SSM“花点时间”在线图书超市【附源码数据库】
    Docker 常用命令
    「PAT乙级真题解析」Basic Level 1077 互评成绩计算 (问题分析+完整步骤+伪代码描述+提交通过代码)
    react的hooks的快速入门教程
    二叉树相关问题细谈递归
    软考系列(系统架构师)- 2020年系统架构师软考案例分析考点
    【PDF技巧】网上下载的pdf文件怎么才能编辑
  • 原文地址:https://blog.csdn.net/qq_29385297/article/details/127828384