keepalived+nginx高可用环境搭建
来源:互联网 发布:何穗为什么那么白 知乎 编辑:程序博客网 时间:2024/05/18 09:04
高可用方案其实很多,而且有很多成本是非常低和简单的。比如你如果有一个网站,高可用最简单的就是nds+nginx+两台机器。
我们由于是客户的一个项目,dns申请是非常麻烦的,所以才考虑用keepalived+nginx做高可用方案。
从网上整理了HA常用组合。
heartbeat v2+crm
heartbeat v3+pacemaker
corosync+pacemaker
cman + rgmanager
keepalived+lvs。
这里我们没有用lvs,而是直接用了nginx,感觉就两台机器,所以也没有必要搞的太复杂。而且也能满足要求。
安装前的规划,这个我认为还是比较重要的,我们就是之前没有好好规划,现在感觉比较乱,而且客户升级也很麻烦。一堆的流程。
我们系统是java开发的,所以用了tomcat进行后台的解析。
首先是目录规划,比如tomcat放在什么地方,静态文件放在什么地方。一般来说有nginx后静态文件由nginx去解析,可以分担tomcat的很多压力。
nginx安装前准备,因为nginx安装还是比较简单的,但是有个问题就是nginx有很多插件,这些插件是否需要安装需要研究一下。由于nginx对回话处理不是太好,所以我们这边需要添加一个会话保持的插件,其他插件建议不要安装太多,毕竟稳定和效率是第一的,非官方的插件就怕有问题,到时候找都不好找。
依赖yum -y install gcc pcre-devel kernel-devel
yum install openssl-* -y 剩下的就看提示,没有就安装一下。
下面就是安装:
tar -zxvf nginx-1.7.9.tar.gz
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --add-module=../nginx-stick
make
make install
这里里面用了一个stick回话保持的插件,下载地址为,这个有时候不太好找,基本上都是google服务器上的,没有办法下载。
https://github.com/ezbake/nginx-sticky-module
这里有个问题就是当nginx挂了的时候,keepalived并不知道服务不可用,所以还回继续提供服务,但这个时候已经不起作用了。
所以需要添加一个守护进程,当nginx挂的时候把keepalived也观杀掉,当进程启动的时候也启动keepalived。
可以在crontab里面设置30秒检测一次,也就是当nginx挂的时候最长时间会延迟三十秒切换。
*:30 * * * * /opt/nginx_pid.sh
#!/bin/bash
# varsion 1.0
A=`ps -C nginx --no-header |wc -l`
B=`ps -C keepalived --no-header |wc -l`
if [ $A -eq 0 ];then
# /usr/local/nginx/sbin/nginx
sleep 1
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
killall keepalived
fi
elif [ $B -eq 0 ];then
/etc/rc.d/init.d/keepalived start
fi
最后别忘了脚本要加上可执行的权限,不然不会执行。
vrrp_script weight 脚本执行的逻辑:失败的标志位,当返回值为0时候表示成功,其他都是失败。
为正时,脚本检测成功时此weight会加到priority上,检测失败时不加。
主失败
主 priority < 从 priority + weight 时会切换。
主成功:
主 priority + weight > 从 priority + weight 时,主依然为主
weight 为负时,脚本检测成功时此weight不影响priority,检测失败时priority – abs(weight)
主失败:
主 priority – abs(weight) < 从priority 时会切换主从
主成功:
主 priority > 从priority 主依然为主。
- keepalived+nginx高可用环境搭建
- keepalived+nginx高可用环境搭建
- 使用keepalived搭建高可用的Nginx
- 使用keepalived搭建高可用的nginx
- mysql+keepalived高可用集群环境搭建
- KeepAlived高可用Nginx
- Nginx+Keepalived(双机热备)搭建高可用负载均衡环境(HA)
- 双机热备Nginx+Keepalived搭建HA高可用负载均衡环境
- 双机热备Nginx+Keepalived搭建HA高可用负载均衡环境
- Nginx+Keepalived实现nginx的高可用集群搭建
- keepalived+nginx搭建高可用and负载均衡集群
- Nginx+Keepalived高可用负载均衡服务器搭建
- Nginx+Keepalived搭建高可用负载均衡集群
- nginx+keepalived搭建高可用负载均衡(主备模式)
- nginx+keepalived搭建高可用负载均衡(双主模式)
- keepalived+nginx+tomcat7+redis搭建高可用集群(一)
- keepalived+nginx+tomcat7+redis搭建高可用集群(二)
- 搭建 Keepalived + Nginx + Tomcat 的高可用负载均衡架构
- 图解linux char驱动
- C语言学习笔记之 第六讲:头文件源文件以及include包含指令
- 从0到100——知乎架构变迁史
- IntelliJ IDEA 实用快捷键
- HDU 2036 改革春风吹满地
- keepalived+nginx高可用环境搭建
- 汇编语言中参数调用问题
- 154 崔潤德
- Android问题:Unreachable code
- C++学习笔记 | 第二章 变量和基本类型 | (5)
- 关于链接数据库报错Can't open named pipe to host : .pipe:MySQL(2)问题
- 漫步者:产能瓶颈缓解 成长前景可期
- 单链表相关
- 十进制转十六进制