nginx1.14.0版本高可用——keepalived双机热备
nginx不支持主从,所以我们需要使用keepalive支持高可用。
keepalived重要知识点
在局域网内,每个主机上各安装一个keepalived,注意关闭防火墙firewalld,然后设定一个VIP(虚拟IP),主keepalived会获得授权在自己的主机上设置一个虚拟IP提供给应用层使用。
一旦此keepalived用shell脚本监测到此机器上的nginx挂掉之后,立刻kill掉自己,同时也注销VIP。
局域网内另一个keepalived感知(需关闭防火墙才能互相感知)到主keepalived挂掉,会把虚拟IP在自己所在机器上虚拟一个,此操作叫IP漂移。从而达到应用层对某个nginx挂掉无感知。
安装keepalived
yum -y update
yum -y remove keepalived
yum install keepalived –y
使用yum安装的会有一个默认配置文件模板
路径为/etc/keepalived/keepalived.conf
启动keepalived服务
systemctl start keepalived
如果是这样就是启动成功了:

如果是这样就是启动失败,要检查是否是conf文件没改正确:

keepalived配置——发送邮件设置
global_defs {
notification_email { 收件邮箱列表
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1 发件邮箱设置
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
keepalived 配置——获取网卡名称
查看本机网卡: IP a

keepalived.conf 配置——VIP配置 (virtual IP)
! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL
}
vrrp_script chk_nginx {
script "/etc/keepalived/chk_nginx.sh" 监测nginx是否存活脚本,如果否,keepalived将kill掉自己
interval 2
weight -5
fall 2
rise 1
}
vrrp_instance VI_1 {
state MASTER 字符串标识,可以随便写,比如backup
interface eno16777736
virtual_router_id 51
priority 100 指定keepalived的优先级,最高优先级为主,可以设置所在机器的虚拟IP,其它从keepalived则不能。
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.10.200 指定一个虚拟IP : VIP,后续做IP漂移。这个IP也是应用访问的IP
#192.168.10.210 可以设置多个虚拟IP
}
track_script {
chk_nginx 此虚拟IP检测存活对象的脚本,这里检测nginx
} }
chk_nginx.sh脚本
A=`ps -C nginx --no-header |wc -l` 检测nginx存活数,如果是0,则是nginx已经挂掉了
if [ $A -eq 0 ] ; then
echo 'nginx server is died'
killall keepalived kill掉自己
fi
keepalived启动、停止、查看存活状态命令
systemctl start keepalived.service 启动
systemctl stop keepalived.service 停止
systemctl status keepalived.service 查看状态
nginx启动、停止、查看运行状态
cd nginx目录
./sbin/nginx -t 检查nginx.conf脚本语法是否正常
./sbin/nginx 启动
./sbin/nginx -s stop 停止 Stop 是快速关闭,不管有没有正在处理的请求。
./sbin/nginx -s quit 退出 Quit 是一个优雅的关闭方式,Nginx在退出前完成已经接受的连接请求。
./sbin/nginx -s reload 重启
ps -ef|grep nginx 查看运行状态
ps -C nginx --no-header |wc -l 查看存活数。一般情况下,2是正常数,因为一个nginx启动会有两个nginx进程?
nginx1.14.0版本高可用——keepalived双机热备的更多相关文章
- 【Nginx】如何基于主从模式搭建Nginx+Keepalived双机热备环境?这是最全的一篇了!!
写在前面 最近出版了<海量数据处理与大数据技术实战>,详情可以关注 冰河技术 微信公众号,查看<我的<海量数据处理与大数据技术实战>出版啦!>一文. 也有不少小伙伴 ...
- Keepalived双机热备
一,Keepalived双机热备的应用场景 1,网站流量不高,压力不大,但是对服务器的可靠性要求极其高,例如实时在线OA系统,政府部门网站系统,医院实时报医系统,公安局在线报案系统,股市后台网站系统等 ...
- keepalived双机热备nginx
nginx目前是我最常用的反向代理服务,线上环境为了能更好的应对突发情况,一般会使用keepalived双机热备nginx或者使用docker跑nginx集群,keepalived是比较传统的方式,虽 ...
- Nginx+keepalived双机热备(主主模式)
之前已经介绍了Nginx+Keepalived双机热备的主从模式,今天在此基础上说下主主模式的配置. 由之前的配置信息可知:master机器(master-node):103.110.98.14/19 ...
- Nginx+keepalived 双机热备(主主模式)
之前已经介绍了Nginx+Keepalived双机热备的主从模式,今天在此基础上说下主主模式的配置. 由之前的配置信息可知:master机器(master-node):103.110.98.14/19 ...
- nginx1.14.0版本https加密配置
修改host文件,为最后访问域名准备 C:\Windows\System32\drivers\etc host文件目录192.168.10.140 www.joyce.com 在最后添加这个自定义域名 ...
- Keepalived 双机热备
使用 Keepalived 做双机热备非常简单,经常和 LVS 搭配来实现高可用负载平衡方案. 1. Master / Slave 首先准备两台测试服务器和一个虚拟IP. Server A: 192. ...
- keepalived双机热备,安装部署文档
keepalived双击热备,安装部署文档: 下载目录:/apps/keepalived-1.2.7.tar.gz 1:---> yum install -y make wget 2:---&g ...
- nginx + keepalived 双机热备
序 双机热备是指两台机器都在运行,但并非两台机器同时在提供服务. 当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,且切换的时间非常短. keepalived的工作原理是VRRP—— ...
随机推荐
- 普天同庆,微博开通,从今以后,努力用功! 狗屎一样的顺口溜!Q狗屎!!狗屎。。。。。 测试。。测试。。。没刷过微博。屯里来的。看看啥效果
普天同庆,微博开通,从今以后,努力用功! 狗屎一样的顺口溜!Q狗屎!!狗屎..... 测试..测试...没刷过微博.屯里来的.看看啥效果
- 设置Ubuntu右侧显示扩展屏幕。。。
sudo xrandr --output VGA1 --right-of LVDS1 --auto
- 工具类:mybatis中使用Threadlocal开启session及关闭session
1.线程容器,给线程绑定一个Object 内容,后只要线程不变,可以随时取出. 1.1 改变线程,无法取出内容. final ThreadLocal threadLocal = new ThreadL ...
- ELFHash算法解释
// ELF Hash Function unsigned int ELFHash(char *str) { unsigned int hash = 0; unsigned int x = 0; wh ...
- 《Machine Learning Yearing》读书笔记
——深度学习的建模.调参思路整合. 写在前面 最近偶尔从师兄那里获取到了吴恩达教授的新书<Machine Learning Yearing>(手稿),该书主要分享了神经网络建模.训练.调节 ...
- Linux恢复误删除的文件或者目录(转)
linux不像windows有个回收站,使用rm -rf *基本上文件是找不回来的. 那么问题来了: 对于linux下误删的文件,我们是否真的无法通过软件进行恢复呢? 答案当然是否定的,对于误删的文件 ...
- Golang基本语法
(1) 全局变量与局部变量 首先,得了解go代码块,也就是"{}",代码块外面访问不到代码块里面的变量. 在go语言里,变量民首写字母为大写则是全局变量,首写字母小写则是局部变量. ...
- leetcode 刷题(2)--- 两数相加
给定两个非空链表来表示两个非负整数.位数按照逆序方式存储,它们的每个节点只存储单个数字.将两数相加返回一个新的链表. 你可以假设除了数字 0 之外,这两个数字都不会以零开头. 示例: 输入:(2 -& ...
- K-means算法应用:图片压缩
plt.imshow(china[:,:,2]) plt.show() from sklearn.datasets import load_sample_image china=load_sample ...
- uWSGI+Django (中)
环境是ubuntu 14.0 python3 django 1.10 1:安装uwsgi sudo apt-get install libpcre3 libpcre3-dev sudo pip3 i ...