Hearbeat + Nginx 安装配置
Hearbeat + Nginx 安装配置
实验环境
- 两台主机:Linux Centos 6.5 32位
- 主 服务端:Hearbeat + Nginx
- eth0:192.168.1.160(公网)
- eth1:192.168.2.10(私网)
- 从 服务端:Hearbeat + Nginx
- eth0:192.168.1.161(公网)
- eth1:192.168.1.20(私网)
Hearbeat + Nginx 环境安装(从主 server 安装相同)
- 安装包
- heartbeat.i686 3.0.4-2.el6 epel
- heartbeat-devel.i686 3.0.4-2.el6 epel
- heartbeat-libs.i686 3.0.4-2.el6 epel
- 依赖包
- libnet
添加双网卡:http://www.cnblogs.com/xiangsikai/p/8435927.html
安装yum扩展源:http://www.cnblogs.com/xiangsikai/p/8435806.html
关闭 防火墙 SELINUX
service iptables stop
setenforce 0
yum 安装 hearbeat + nginx
yum -y install heartbeat*
yum -y install libxml2
yum -y install nginx
Hearbeat + Nginx 文件配置
主 hearbeat 配置
cd /usr/share/doc/heartbeat-3.0.4/
cp ha.cf haresources authkeys /etc/ha.d/
2、编辑 authkeys 配置文件
# 解注释:选择加密算法
auth 3
#1 crc
#2 sha1 HI!
# 解注释:使用md5加密算发
3 md5 Hello!
配置文件
# 加入权限 只允许 自己读取
chmod 600 /etc/ha.d/authkeys
3、编辑 haresources 配置文件,最下行插入
# 主的主机名 VIP/子网掩码/虚拟网卡(公网) 服务名(启动hearbeat时一同加载)
heartbeat1 192.168.1.100/24/eth0:0 nginx
配置文件
4、编辑 ha.cf 配置文件
# 解注释:错误日志文件
debugfile /var/log/ha-debug
#解注释:访问日志文件
logfile /var/log/ha-log
# 解注释:发广播测试存活多少秒发送一次
keepalive 2
# 解注释:多少秒之内没有响应就判定down机
deadtime 30
# 解注释:多少秒之内未响应就提示记录日志
warntime 10
# 解注释:主机down掉后预留时间,该时间内备端不会发生动作
initdead 60
# 解注释:udp通信端口
udpport 694
# 解注释:使用ucast单点链接 网卡 主从端对方的IP,使用内网IP
# 注:bcast是以广播形式链接。
ucast eth1 192.168.2.20
# 解注释:节点 写入主备的主机名
node heartbeat1
node heartbeat2
# 解注释:仲裁 第三方测试 一般设置为网关
ping 192.168.1.1
# 解注释:开启网络工具
respawn hacluster /usr/lib/heartbeat/ipfail
配置文件
5、编辑 hosts 配置文件
# 写入主IP 主机名 与 备IP 主机名
192.168.1.160 heartbeat1
192.168.1.161 heartbeat2
配置文件
从 hearbeat 配置
yum install openssh-clients.i686
两端 安装scp服务
进入目录 将配置文件复制给备的 目录下
cd /etc/ha.d/
scp ha.cf haresources authkeys heartbeat2:/etc/ha.d/
主:复制配置文件 到 从服务内
1、修改配置文件
vim /etc/hearbeat/ha.cf
# 修改为主端IP地址,对方的IP,使用内网IP
ucast eth1 192.168.2.10
修改配置文件
查看主从状态
service heartbeat start
主 hearbeat
命令:ps aux | grep heart root 2937 0.0 1.2 6452 6448 ? SLs 02:10 0:00 heartbeat: master control process
root 2941 0.0 1.2 6420 6416 ? SL 02:10 0:00 heartbeat: FIFO reader
root 2942 0.0 1.2 6416 6412 ? SL 02:10 0:00 heartbeat: write: ucast eth0
root 2943 0.0 1.2 6416 6412 ? SL 02:10 0:00 heartbeat: read: ucast eth0
root 2944 0.0 1.2 6416 6412 ? SL 02:10 0:00 heartbeat: write: ping 192.168.1.1
root 2945 0.0 1.2 6416 6412 ? SL 02:10 0:00 heartbeat: read: ping 192.168.1.1
498 2965 0.0 0.2 5312 1516 ? S 02:10 0:00 /usr/lib/heartbeat/ipfail
查看heartbeat启动情况
命令:ps aux | grep nginx root 3411 0.0 0.3 16072 1548 ? Ss 02:10 0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx 3413 0.0 0.3 16232 1976 ? S 02:10 0:00 nginx: worker process
查看nginx启动情况
命令:ifconfig eth0:0 Link encap:Ethernet HWaddr 00:0C:29:67:0E:20
inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
查看VIP是否创建
从 hearbeat
命令:ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:9E:70:1E
inet addr:192.168.1.161 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe9e:701e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:33479 errors:0 dropped:0 overruns:0 frame:0
TX packets:22909 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:33890336 (32.3 MiB) TX bytes:3286830 (3.1 MiB) eth1 Link encap:Ethernet HWaddr 00:0C:29:9E:70:28
inet addr:192.168.2.20 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe9e:7028/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4127 errors:0 dropped:0 overruns:0 frame:0
TX packets:3167 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:480791 (469.5 KiB) TX bytes:543017 (530.2 KiB) lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:17 errors:0 dropped:0 overruns:0 frame:0
TX packets:17 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1630 (1.5 KiB) TX bytes:1630 (1.5 KiB)
查看,是否未加载VIP
ps -aux | grep nginx Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root 3868 0.0 0.1 5980 744 pts/2 S+ 02:28 0:00 grep nginx
查看 是否未开启Nginx
测试主从高可用效果
主
cd /usr/share/nginx/html/
echo "heartbeat1" > index.html
备
cd /usr/share/nginx/html/
echo "heartbeat2" > index.html
service iptables start
iptables -F
iptables -I INPUT -p icmp -j DROP
命令:tail -f /var/log/ha-log Dec 24 02:55:37 heartbeat1 heartbeat: [5176]: info: give up all HA resources (standby).
ResourceManager(default)[5189]: 2017/12/24_02:55:37 info: Releasing resource group: heartbeat1 192.168.1.100/24/eth0:0 nginx
ResourceManager(default)[5189]: 2017/12/24_02:55:37 info: Running /etc/init.d/nginx stop
ResourceManager(default)[5189]: 2017/12/24_02:55:37 info: Running /etc/ha.d/resource.d/IPaddr 192.168.1.100/24/eth0:0 stop
IPaddr(IPaddr_192.168.1.100)[5275]: 2017/12/24_02:55:37 INFO: IP status = ok, IP_CIP=
/usr/lib/ocf/resource.d//heartbeat/IPaddr(IPaddr_192.168.1.100)[5249]: 2017/12/24_02:55:37 INFO: Success
Dec 24 02:55:37 heartbeat1 heartbeat: [5176]: info: all HA resource release completed (standby).
Dec 24 02:55:37 heartbeat1 heartbeat: [4824]: info: Local standby process completed [all].
Dec 24 02:55:38 heartbeat1 heartbeat: [4824]: WARN: 1 lost packet(s) for [heartbeat2] [686:688]
Dec 24 02:55:38 heartbeat1 heartbeat: [4824]: info: remote resource transition completed.
Dec 24 02:55:38 heartbeat1 heartbeat: [4824]: info: No pkts missing from heartbeat2!
Dec 24 02:55:38 heartbeat1 heartbeat: [4824]: info: Other node completed standby takeover of all resources.
主:查看日志
命令:tail -f /var/log/ha-log /usr/lib/ocf/resource.d//heartbeat/IPaddr(IPaddr_192.168.1.100)[4503]: 2017/12/24_02:36:59 INFO: Resource is stopped
ResourceManager(default)[4475]: 2017/12/24_02:36:59 info: Running /etc/ha.d/resource.d/IPaddr 192.168.1.100/24/eth0:0 start
IPaddr(IPaddr_192.168.1.100)[4634]: 2017/12/24_02:36:59 INFO: Adding inet address 192.168.1.100/24 with broadcast address 192.168.1.255 to device eth0 (with label eth0:0)
IPaddr(IPaddr_192.168.1.100)[4634]: 2017/12/24_02:36:59 INFO: Bringing device eth0 up
IPaddr(IPaddr_192.168.1.100)[4634]: 2017/12/24_02:36:59 INFO: /usr/libexec/heartbeat/send_arp -i 200 -r 5 -p /var/run/resource-agents/send_arp-192.168.1.100 eth0 192.168.1.100 auto not_used not_used
/usr/lib/ocf/resource.d//heartbeat/IPaddr(IPaddr_192.168.1.100)[4608]: 2017/12/24_02:36:59 INFO: Success
ResourceManager(default)[4475]: 2017/12/24_02:36:59 info: Running /etc/init.d/nginx start
Dec 24 02:36:59 heartbeat2 heartbeat: [4462]: info: all HA resource acquisition completed (standby).
Dec 24 02:36:59 heartbeat2 heartbeat: [3812]: info: Standby resource acquisition done [all].
Dec 24 02:37:00 heartbeat2 heartbeat: [3812]: info: remote resource transition completed.
从:查看日志
命令:ifconfig eth0:0 Link encap:Ethernet HWaddr 00:0C:29:9E:70:1E
inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
从:查看VIP是否生成
命令:ps -aux | grep nginx Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root 4755 0.0 0.3 16072 1548 ? Ss 02:36 0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx 4757 0.0 0.3 16236 1980 ? S 02:36 0:00 nginx: worker process
root 4761 0.0 0.1 5980 744 pts/2 S+ 02:40 0:00 grep nginx
从:查看Nginx服务是否开启
正常测试
http://192.168.1.100/
heartbeat1
http://192.168.1.100/
heartbeat1
http://192.168.1.100/
heartbeat1 主 单点故障
http://192.168.1.100/
heartbeat2
http://192.168.1.100/
heartbeat2
http://192.168.1.100/
heartbeat1
测试页
iptables -D INPUT -p icmp -j DROP
http://192.168.1.100/
heartbeat1
http://192.168.1.100/
heartbeat1
http://192.168.1.100/
heartbeat1
测试页
Hearbeat + Nginx 安装配置的更多相关文章
- Nginx安装配置(转)
Nginx 安装配置 Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/ ...
- Nginx安装配置PHP(FastCGI)环境的教程
这篇是Nginx安装配置PHP(FastCGI)环境的教程.Nginx不支持对外部程序的直接调用或者解析,所有的外部程序(包括PHP)必须通过FastCGI接口来调用. 一.什么是 FastCGI F ...
- Nginx安装配置与HelloWorld
<深入理解Nginx>阅读与实践(一):Nginx安装配置与HelloWorld 最近在读陶辉的<深入理解Nginx:模块开发与架构解析>,一是想跟着大牛练练阅读和编写开源代码 ...
- Nginx 安装 配置 使用
Nginx 安装 配置 使用 基本的HTTP服务器特性 处理静态文件,索引文件以及自动索引:打开文件描述符缓存(缓存元数据和文件描述符,下一次可以直接从内存找到数据或者文件的位置): 使用缓存加速反向 ...
- VMware Linux 下 Nginx 安装配置 - nginx.conf 配置 [负载两个 Tomcat] (三)
首先启动Nginx 1. 相关浏览 两个 Tomcat 配置: VMware Linux 下 Nginx 安装配置 - Tomcat 配置 (二) Nginx 安装配置启动: VMware Linu ...
- VMware Linux 下 Nginx 安装配置 - Tomcat 配置 (二)
准备工作 相关浏览: VMware Linux 下 Nginx 安装配置 (一) 1. 选在 /usr/local/ 下创建 softs 文件夹,通过 ftp 命令 把 apache-tomcat-7 ...
- Nginx安装配置|Nginx反向代理|Nginx支持HTTPS|Nginx重定向
Nginx安装配置 可以直接看到最下面的HTTPS. Nginx安装 我的系统如下: No LSB modules are available. Distributor ID: Ubuntu Desc ...
- puppet 3+Unicorn+Nginx安装配置
puppet 3+Unicorn+Nginx安装配置 2014-08-15 10:58 酒瓶不倒 酒瓶不倒的博客 字号:T | T 一键收藏,随时查看,分享好友! Unicorn 效率要比 Webri ...
- nginx安装配置_runoob_阅读笔记_20190917
Nginx 安装配置_runoob菜鸟教程 Nginx 安装配置 Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向 ...
随机推荐
- Openstack(Kilo)安装系列之环境准备(二)
控制节点.网络节点.计算节点: 一.配置源 1.配置EPEL源 yum install http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-rel ...
- SQL Server 日期格式化输出
转自:http://hi.baidu.com/%BC%D1%C0%D6%B1%C8%BA%A3/blog/item/fdaf6c9525adfa0f7af480ec.html T-SQL Script ...
- Map的两张遍历方法 keySet(),entrySet()
源博客 http://blog.csdn.net/liu826710/article/details/9001254 在Map集合中 values():方法是获取集合中的所有的值----没有键,没有对 ...
- Mac Navicat_Premium_mac破解中文版
原文地址:https://www.52pojie.cn/thread-727433-1-1.html Navicat_Premium_mac 最新版 12.0.24(原版是英文的) 汉化:安装完之后 ...
- 1603 限高二叉排列树(计数DP)
1603 限高二叉排列树 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 作为游戏魔方的编写者和管理员,Bob在很多主存模块中 ...
- String、StringBuffer与StringBuilder的区别。
无论是做Java或是Android,都避免不了遇到这个问题,其实开发过程中一般情况下是不会纠结,这个问题是面试必选经典题,今天有时间,就总结一下. String.StringBuffer.String ...
- JS将秒转换为 天
function SecondToDate(msd) { var time =msd if (null != time && " ...
- golang 模板(template)的常用基本语法
1. 模板 在写动态页面的网站的时候,我们常常将不变的部分提出成为模板,可变部分通过后端程序的渲染来生成动态网页,golang提供了html/template包来支持模板渲染. 这篇文章不讨论gola ...
- coursera 《现代操作系统》 -- 第八周 存储模型(2)
名词解释 页面: 页面大小: 页表: 页表项: 以上名词解释见: coursera <现代操作系统> -- 第七周 存储模型(1) 页表项大小: 问:以上是怎么计算出来的? 32位指什么? ...
- mock数据(模拟后台数据)
mock数据(模拟后台数据) - Emily恩 - 博客园 https://www.cnblogs.com/enboke/p/vue.html Mock.js http://mockjs.com/ 前 ...