linux中keepalived实现nginx高可用配置

安装keepalived

运行如下命令即可
tar -zxvf keepalived-2.0.8.tar.gz -C /usr/src cd /usr/src/keepalived-2.0.8 sudo apt-get install autoconf aclocal autoconf autoheader automake --add-missing sudo apt-get install libssl-dev ./configure --prefix=/usr/local/keepalived make && make install cd /usr/local/keepalived/sbin ./keepalived ps -ef | grep keepalived

修改keepalived配置文件

keepalived的作用,基本上是和多台nginx服务器通信,当主服务器宕机,将ip分法给备用服务器

例如,写类似如下代码
在你的linux网卡中添加一个ip地址,这个ip地址可以ping通,也就是多个nginx服务器,可以共用这一个ip,通过keepalived决定谁可以拥有这个ip
ip addr add yourtestip dev ens33
ip addr
ping yourtestip 配置keepalived配置文件
sudo vim /usr/local/keepalived/etc/keepalived/keepalived.conf ! Configuration File for keepalived
global_defs {
# 服务器宕机发送通知邮件
notification_email {
acassen@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
} # 虚拟路由器配置
vrrp_instance VI_1 {
state MASTER # 设置当前nginx服务器为主节点,备用nginx服务器对应设置成BACKUP即可
interface eth0 # 绑定服务器网卡
virtual_router_id 51 # 主备nginx服务器此id必须一致
priority 100 # 设置优先级,1-254之间,备用服务器的结点优先级设置低点
advert_int 1 # 信息发送间隔,主备都要一致
authentication { # 授权信息,主备服务器一致
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { # 虚拟IP,主备服务器必须一致,网段必须和nginx一致
192.168.200.16
} notify_master "/usr/local/keepalived/sbin/notify_sh master" # 主服务器宕机,备用服务器要成为主服务器则调用此脚本
notify_backup "/usr/local/keepalived/sbin/notify_sh backup"
notify_fault "/usr/local/keepalived/sbin/notify_sh fault"
} vrrp_script chk_health {
script "[[`ps -ef | grep nginx | grep -v grep | wc -l`-ge 2]] && exit 0 || exit 1" # 判断nginx进程是否大于等于2
interval 1 # 1秒钟执行一次
weight -2 # nginx宕机,本机权重降低2
} track_script {
chk_health # 检查nginx
} notify_sh脚本 #!/bin/bash
case $1 in
master)
/usr/local/nginx/sbin/nginx
exit 0
;;
backup)
/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx
exit 0
;;
fault)
/usr/local/nginx/sbin/nginx -s stop
exit 0
*)
echo "(notify.sh(master|backup|fault)"
exit 1
;;
esac

最新文章

  1. The trip(Uva 11100)
  2. eclipse 引用项目(转)
  3. ubuntu 搭建开发环境
  4. Unity Remote 4安卓机使用指南
  5. 用VS2010编C#程序扫盲
  6. 《第一行代码--Android》阅读笔记之广播
  7. JBPM4入门——3.JBPM4开发环境的搭建
  8. 在String()构造器不存在的情况下自定义一个MyString()函数,实现如下内建String()方法和属性:
  9. C++ Primer 有感(管理类的指针成员)
  10. 搭建mxnet-gpu docker的pyhon remote kernel
  11. Ubuntu 12.10 Tty (字符终端) 显示中文,和字体大小设置
  12. R绘图 第七篇:绘制条形图(ggplot2)
  13. GDB常用调试命令以及多进程多线程调试
  14. mapReducer 去重副的单词
  15. 【转】MVC form提交实体接收参数时空字符串值变成null
  16. brew install Jenkins
  17. JS + flash 复制
  18. [Java学习] Java继承的概念与实现
  19. python-GUI,生成ssn
  20. WPF Demo7

热门文章

  1. react: navigator
  2. eclipse新建web项目
  3. [Git]Git指南一 查看创建删除标签
  4. <tf-idf + 余弦相似度> 计算文章的相似度
  5. git clone all branch and create a empty branch
  6. Scrapy库安装和项目创建
  7. Oracle Sql Developer 连接oracle
  8. 【spring源码学习】Spring的IOC容器之BeanPostProcessor接口学习
  9. webstorm-前端javascript开发神器中文教程和技巧分享(转)
  10. hadoop文件IO