keepalived安装配置(nginx)
环境:centos 6.4 64bit
应用:nginx
目的:keepalived可以让两台服务器处于主备关系,如果主的挂了,备的取得VIP(或者互为主备等关系,文字游戏不纠结),
以实现服务器的高可用。
关于恢复:
如果设置keepalived为主备模式,那么当主服务器恢复,VIP重新回到主服务器上,
那么就产生了多次切换的问题,所以这里我不采用主备,而是采用备备的模式。
但是备备模式,两台机的优先级不一样,还是会竞争,所以需要在优先级高的服务器上设置nopreempt(具体见下面的配置)。
两台服务器,备备模式,都运行着nginx:
nginx-1: 192.168.1.136
nginx-1: 192.168.1.150
VIP(虚拟IP):192.168.1.176
|
1
|
yum install -y gcc gcc-c++ popt-devel openssl openssl-devel libssl-dev libnl-devel popt-devel |
安装keepalived
|
1
2
3
4
5
6
|
wget http://www.keepalived.org/software/keepalived-1.2.13.tar.gztar zxvf keepalived-1.2.13.tar.gzcd keepalived-1.2.13./configure --prefix=/usr/local/keepalived makemake install |
keepalived开机启动,两个脚本(开机启动可以参考我另外的文章。)
vim setkeep_startup.sh
|
1
2
3
4
5
6
7
8
|
#!/bin/bashmkdir /opt/stachmod a+x /opt/sta/*echo -e "start on runlevel 2\nstart on runlevel 3\nstart on runlevel 4\nstart on runlevel 5\nrespawn\nexec /opt/sta/keep_check.sh" > /etc/init/keep.confinitctl reload-configuration initctl list initctl start keep |
vim keep_check.sh
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#!/bin/bash#check keepalivedwhile [ 1 ]doRun=$(ps aux|grep keep|grep -v "grep"|wc -l)echo Run=$Runif [ 0 == $Run ]then/usr/local/keepalived/sbin/keepalivedecho "start keepalived"elseecho "keepalived is runing"fisleep 3done |
nginx开机启动
同上,改改就行。如果连改都懒得改,请自行右上角。
nginx检测脚本(两台服务器都需要),如果发现Nginx进程不在了,则杀死keepalived进程:
|
1
2
3
4
5
6
7
8
|
#!/bin/bash run=`ps -C nginx --no-header |wc -l` if [ $run -eq 0 ];then killall keepalived echo "kill keepalived" >> /opt/keep.logelseecho "nginx alive" >> /opt/keep.logfi |
nginx-1配置,路径:/usr/local/keepalived/etc/keepalived/keepalived.conf
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
vrrp_script check_nginx { script "/opt/sta/nginx_alive_check.sh" #nginx监控脚本 interval 2 #执行监控时间间隔 weight 2 #脚本结果导致的优先级变更:2表示优先级+2;-2表示优先级-2}global_defs { notification_email { root@localhost } notification_email_from root@local host smtp_server localhost smtp_connect_timeout 30 router_id NodeA}vrrp_instance VI_1 { state BACKUP #两台机都设置为BACKUP interface eth0 #绑定虚拟IP的网络接口 virtual_router_id 51 #VRRP组名,两个节点的设置必须一样,以指明各个节点属于同一VRRP组 priority 100 #竞争时节点的优先级(1-254之间) nopreempt #在优先级高的机器上设置,防止恢复时重新竞争 advert_int 3 #组播信息发送间隔,两个节点设置必须一样 authentication { #设置验证信息,两个节点必须一致 auth_type PASS auth_pass 1234 }track_script { check_nginx #监控服务定义 } virtual_ipaddress { #虚拟IP, 两个节点设置一样 192.168.1.176/24 }} |
nginx-2配置,路径:/usr/local/keepalived/etc/keepalived/keepalived.conf
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
vrrp_script check_nginx { script "/opt/sta/nginx_alive_check.sh" #nginx监控脚本 interval 2 #执行监控时间间隔 weight 2 #脚本结果导致的优先级变更:2表示优先级+2;-2表示优先级-2}global_defs { notification_email { root@localhost } notification_email_from root@local host smtp_server localhost smtp_connect_timeout 30 router_id NodeA}vrrp_instance VI_1 { state BACKUP #两台机都设置为BACKUP interface eth1 #绑定虚拟IP的网络接口 virtual_router_id 51 #VRRP组名,两个节点的设置必须一样,以指明各个节点属于同一VRRP组 priority 99 #主节点的优先级(1-254之间),备用节点必须比主节点优先级低 advert_int 3 #组播信息发送间隔,两个节点设置必须一样 authentication { #设置验证信息,两个节点必须一致 auth_type PASS auth_pass 1234 }track_script { check_nginx #监控服务定义 } virtual_ipaddress { #虚拟IP, 两个节点设置一样 192.168.1.176/24 }} |
启动keepalived
cd /usr/local/keepalived/sbin/
./keepalived -f /usr/local/keepalived/etc/keepalived/keepalived.conf
-f为指定配置文件路径
启动之后在/var/log/messages中可以看到相关信息输出
输出ip addr可以查看网卡上绑定的ip,看看是不是VIP已经绑定到某一台机器的网卡了。
如果发现两台机都绑了,那么就是两台机无法正常通信,检查防火墙。
关于防火墙,据说这样设置可以让keepalived正常工作:
到/etc/sysconfig/iptables中添加一行
-A INPUT -m state --state NEW -m tcp -p tcp -d 224.0.0.0/8 -j ACCEPT
-A INPUT -i eth0 -p vrrp -j ACCEPT
但是我发现不设置,但是stop然后start,也可以正常工作。目前未解。
keepalived安装配置(nginx)的更多相关文章
- lvs keepalived 安装配置详解【转】
lvs keepalived 安装配置详解 张映 发表于 2012-06-20 分类目录: 服务器相关 前段时间看了一篇文章,lvs做负载均衡根F5差不多,说实话不怎么相信,因为F5没玩过,也无法比较 ...
- ELK 6安装配置 nginx日志收集 kabana汉化
#ELK 6安装配置 nginx日志收集 kabana汉化 #环境 centos 7.4 ,ELK 6 ,单节点 #服务端 Logstash 收集,过滤 Elasticsearch 存储,索引日志 K ...
- (转)windows 下安装配置 Nginx 详解
windows 下安装配置 Nginx 详解 本文转自https://blog.csdn.net/kingscoming/article/details/79042874 nginx功能之一可以启动一 ...
- keepalived安装配置实战心得(实现高可用保证网络服务不间断)
keepalived安装配置实战心得(实现高可用保证网络服务不间断) 一.准备2台虚拟机 安装的系统是:centos-release-7-1.1503.el7.centos.2.8.x86_6 ...
- lvs keepalived 安装配置详解
前段时间看了一篇文章,lvs做负载均衡根F5差不多,说实话不怎么相信,因为F5没玩过,也无法比较.F5相当的贵,真不是一般企业能负担的起的.负载均衡软件也用过不少,nginx,apache,hapro ...
- keepalived安装实现nginx主备高可用
. keepalived安装环境 su - root yum -y install kernel-devel* yum -y install openssl-* yum -y install popt ...
- deepin 15.3 安装配置nginx
1.安装nginx sudo apt-get install nginx 2.配置nginx sudo gedit /etc/nginx/sites-enabled/default 找到:index ...
- Ubuntu 16.04 LTS 安装配置 Nginx 1.10.0 Php7.0-FPM
1. 安装Nginx,Php-7.0 ~$ sudo add-apt-repository ppa:nginx/stable ~$ sudo apt-get update ~$ sudo apt-ge ...
- Ansible安装配置Nginx
一.思路 现在一台机器上编译安装好nginx.打包,然后在用ansible去下发 cd /etc/ansible 进入ansible配置文件目录 mkdir roles/{common,install ...
随机推荐
- C语言中的fread和fwrite
C语言中的fread和fwrite是专门用来操作文件的方法. 1. fread负责从打开的文件指针中读取文件内容. 函数原型:size_t fread(void *p, size_t size, si ...
- asp.net解决数据转换为DBNULL的问题
if (string.IsNullOrEmpty(CookieHelper.GetCookie("DEPID", "theway").ToString()) = ...
- pb中创建连接webservice对象实例方法
try soapConnection conn // Define SoapConnectionHospitalServiceSoap in_hhzswebser // Declare proxyin ...
- 【Hibernate 6】常用的hql语句以及N+1问题
HQL:Hibernate Query Language,是Hibernate框架中的查询语言,十分接近于SQL语言!以下介绍一些常用的Hql语句: 一.测试类 Classes类: <span ...
- 【HTML/XML 11】XML和HTML的混合使用
导读:在前面介绍了很多关于XML和HTML的东西,他们其实各有各的好处,在很多时候都需要结合起来使用.现在已经有XML和HTML结合的产物:XHTML(可扩展超文本标记语言).在本篇博客中,则主要介绍 ...
- SVN与TortoiseSVN实战:文件加锁详解
硬广:<SVN与TortoiseSVN实战>系列已经写了八篇,本篇是完结篇,整个系列结合TortoiseSVN对SVN中容易被忽视的部分进行了详解,以技巧性为主. 本篇详解使用Tortoi ...
- LiveView 0.8 RC1 could boot evidence files acquired from Win10 64bit
The latest Windows 10 will be more and more popular in the very near future. Now let's take a look i ...
- Android IOS WebRTC 音视频开发总结(三十)-- ice协议异同
本文主要介绍ICE与SDP交互过程中的一些知识,支持原创,文章来博客园RTC.Blacker,转载请说明出处. 用过libjingle模块的同学都知道连接过程中candidate的获取与连接流程,一边 ...
- The given path's format is not supported.
问题 编程以来今本没有使用input[type=file]这个控件过,今天突然使用尽然报错了,在本地chrome,firefox等其他的浏览器都是好的,唯独ie报错了.在服务器的时候,尽然chrome ...
- linux禁止tty终端登陆
修改文件/etc/pam.d/system-auth #%PAM-1.0# This file is auto-generated.# User changes will be destroyed t ...