Nginx 高可用
如果 Nginx 出现问题:
解决办法:
前期准备:
-
两台 Nginx 服务器
-
安装 Keepalived
-
虚拟 ip
安装 Keepalived:
[root@192 usr]# yum install keepalived -y
[root@192 usr]# rpm -q -a keepalived
keepalived-1.3.5-16.el7.x86_64
修改配置文件:
[root@192 keepalived]# cd /etc/keepalived
[root@192 keepalived]# vi keepalived.conf
分别将如下配置文件复制粘贴,覆盖掉 keepalived.conf,虚拟 ip 为 192.168.25.50。
对应主机 ip 需要修改的是:
-
smtp_server 192.168.25.147(主)smtp_server 192.168.25.147(备)
- state MASTER(主) state BACKUP(备
global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.25.147 smtp_connect_timeout 30 router_id LVS_DEVEL # 访问的主机地址 } vrrp_script chk_nginx { script "/usr/local/src/nginx_check.sh" # 检测文件的地址 interval 2 # 检测脚本执行的间隔 weight 2 # 权重 } vrrp_instance VI_1 { state BACKUP # 主机MASTER、备机BACKUP interface ens33 # 网卡 virtual_router_id 51 # 同一组需一致 priority 90 # 访问优先级,主机值较大,备机较小 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.25.50 # 虚拟ip } }
启动代码如下:
[root@192 sbin]# systemctl start keepalived.service
-
-
关闭主机 147 的 Nginx 和 Keepalived,发现仍然可以访问。
原理解析
如下图,就是启动了一个 master,一个 worker,master 是管理员,worker是具体工作的进程。
worker 如何工作?如下图:
worker 数应该和 CPU 数相等;一个 master 多个 worker 可以使用热部署,同时 worker 是独立的,一个挂了不会影响其他的。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/13018.html