nginx+keepalived构建高可用服务
2024-10-21 14:37:55
1.整体环境规划
虚拟IP:10.0.4.248
主Nginx:10.0.4.249
备用Nginx:10.0.4.250
2.keepalived安装
#cd /usr/local/src
#wget http://www.keepalived.org/software/keepalived-1.2.22.tar.gz
#./configure --prefix=/usr/local/keepalived
#make & make install
3.master服务keepalived.conf配置
! Configuration File for keepalived global_defs { router_id edu-proxy- } vrrp_script chk_nginx { script "/etc/keepalived/nginx_check.sh" interval weight - } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id mcast_src_ip 10.0.4.249 priority nopreempt advert_int authentication { auth_type PASS auth_pass } track_script { chk_nginx } virtual_ipaddress { 10.0.4.248 } }
4.backerup服务keepalived.conf配置
! Configuration File for keepalived global_defs { router_id edu-proxy- } vrrp_script chk_nginx { script "/etc/keepalived/nginx_check.sh" interval weight - } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id mcast_src_ip 10.0.4.250 priority advert_int authentication { auth_type PASS auth_pass } track_script { chk_nginx } virtual_ipaddress { 10.0.4.248 } }
5.nginx_check.sh脚本编写
#!/bin/bash A=`ps -C nginx –no-header |wc -l` if [ $A -eq ];then /usr/local/openrestry/nginx/sbin/nginx //Nginx安装路径 sleep if [ `ps -C nginx --no-header |wc -l` -eq ];then killall keepalived fi fi
6.启动keepalived
主
/usr/local/keepalived/sbin/keepalived [root@localhost sbin]# ip addr : lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN link/loopback ::::: brd ::::: inet 127.0.0.1/ scope host lo inet6 ::/ scope host valid_lft forever preferred_lft forever : eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen link/ether :0c::c6:9b: brd ff:ff:ff:ff:ff:ff inet 10.0.4.249/ brd 10.0.4.255 scope global eth0 inet 10.0.4.248/ scope global eth0 inet6 fe80::20c:29ff:fec6:9b91/ scope link valid_lft forever preferred_lft forever
备用
[root@localhost keepalived]# ip addr : lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN link/loopback ::::: brd ::::: inet 127.0.0.1/ scope host lo inet6 ::/ scope host valid_lft forever preferred_lft forever : eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen link/ether :0c:::6c: brd ff:ff:ff:ff:ff:ff inet 10.0.4.250/ brd 10.0.4.255 scope global eth0 inet 10.0.4.248/ scope global eth0 inet6 fe80::20c:29ff:fe75:6c82/ scope link valid_lft forever preferred_lft forever
最新文章
- 读书笔记-js
- Inversion of Control Containers and the Dependency Injection pattern(转)
- ASP.NET MVC 中如何用自定义 Handler 来处理来自 AJAX 请求的 HttpRequestValidationException 错误
- 知问前端——概述及jQuery UI
- [转]解决crystal report水晶报表在浏览器提示bobj未定义的错误
- laravel路由使用【总结】
- C#入门经典(3-窗体应用程序-第二章要点)
- 使用Java操作文本文件的方法详解
- Angular2之管道学习笔记
- 刚实习的自己-php
- Java并发系列[7]----CountDownLatch源码分析
- SpringIOC学习一
- linux_批量关闭进程
- asp.net mvc + dapper(ORM框架) + easyui框架简洁的信息管理项目
- java网络编程Socket通信详解
- 线程同步,条件变量pthread_cond_wait
- java.lang.NullPointerException - 如何处理空指针异常
- 【算法34】蓄水池抽样算法 (Reservoir Sampling Algorithm)
- Json转Scala对象一个问题
- java 内部类的继承
热门文章
- Hibernate异常:Unable to locate appropriate constructor on class
- javat Itext实践 pdf
- 解决html视频播放只有声音没有图像的办法
- shell遍历文件夹并执行命令
- android apktool 基本的安装与使用
- Microsoft.VisualStudio.Shell.14.0.dll 文件位置
- c语言指针详解 经典
- 关于mysql存储过程创建动态表名及參数处理
- 算法笔记_061:蓝桥杯练习 字串统计(Java)
- 解决64位操作系统下运行psql的问题