nginx+keepalived实现负载均衡nginx的高可用
准备四台服务器
两台做主备,另外两台做访问
192.168.1.120 master
192.168.1.121 backup
192.168.1.122 nginx
192.168.1.123 nginx
安装keepalived
yum -y install gcc pcre-devel zlib-devel openssl-devel yum -y install popt-devel wget http://www.keepalived.org/software/keepalived-1.2.7.tar.gz tar zxvf keepalived-1.2..tar.gz cd keepalived-1.2. ./configure make&&make install
漫长的等待后.....
cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
mkdir /etc/keepalived
cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
cp /usr/local/sbin/keepalived /usr/sbin/
加入启动服务 注册成服务
echo "/etc/init.d/keepalived start" >> /etc/rc.local
chkconfig --add keepalived
配置master nginx 192.168.1.110 和 192.168.1.121
#user nobody;
worker_processes ; error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info; #pid logs/nginx.pid;
events {
worker_connections ;
}
http {
include mime.types;
default_type application/octet-stream;
access_log logs/access.log;
sendfile on;
upstream 120.com {
#ip_hash;
server 192.168.1.122:80;
server 192.168.1.123:80;
}
#tcp_nopush on; #keepalive_timeout ;
keepalive_timeout ; #gzip on; server {
listen ;
server_name localhost;
error_page /50x.html;
location = /50x.html {
root html;
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
proxy_pass http://120.com;
include fastcgi_params;
} } include vhost/*.conf; }
然后访问试试




实现了负载均衡调用另外两台服务器
配置master keepalived
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
@qq.com
}
notification_email_from @qq.com
smtp_server 127.0.0.1
smtp_connect_timeout
router_id nginx_master
}
vrrp_script check_nginx_is_run {
script "/etc/keepalived/check_nginx_is_run.sh"
interval
weight
}
# 虚拟IP1, 本机作为Master
vrrp_instance VI_1 {
state MASTER
interface ens33 #你的网卡
virtual_router_id
priority
advert_int
track_interface {
ens33
}
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
192.168.1.51
}
track_script {
check_nginx_is_run
}
}
配置backup keepalived
! Configuration File for keepalived
global_defs {
notification_email {
@qq.com
}
notification_email_from @qq.com
smtp_server 127.0.0.1
smtp_connect_timeout
router_id nginx_backup
}
vrrp_script check_nginx_is_run {
script "/etc/keepalived/check_nginx_is_run.sh"
interval
weight
}
# 虚拟IP1, 本机作为Master
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id
priority
advert_int
track_interface {
ens33
}
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
192.168.1.51
}
track_script {
check_nginx_is_run
}
}
安装 killall 命令
yum install psmisc
编写 shell 脚本
#!/bin/bash
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq ];then
/usr/local/nginx/sbin/nginx #重启nginx
sleep
if [ `ps -C nginx --no-header |wc -l` -eq ];then #nginx重启失败,则停掉keepalived服务,进行VIP转移
killall keepalived
fi
fi
设置可执行命令
chmod a+x check_nginx_is_run.sh
如果你是window下放进去的,会有
-bash: ./check_nginx_is_run.sh: /bin/bash^M: 坏的解释器: 没有那个文件或目录
解决办法
sed -i 's/\r$//' check_nginx_is_run.sh
查看master keepalived 日记 vim /var/log/messages

查看 backup

好了不说了 停止nginx ,再不行就关机 192.168.1.120 or 121
如果你service nginx stop 来测试,你会发现关不掉,因为脚本重启了
你会发现OK了~ 


nginx+keepalived实现负载均衡nginx的高可用的更多相关文章
- Nginx+keepalived实现负载均衡
Nginx的优点是: 1.工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名.目录结构,它的正则规则比HAProxy更为强大和灵活,这也是它目前广泛流行的主要原因之一,Nginx ...
- Nginx+keepalived实现负载均衡高可用配置
1. 什么是负载均衡高可用 nginx作为负载均衡器,所有请求都到了nginx,可见nginx处于非常重点的位置,如果nginx服务器宕机后端web服务将无法提供服务,影响严重. 为了屏蔽负载均衡服务 ...
- LVS负载均衡+动静分离+高可用(nginx+tomcat+keepalived)
文章目录 [隐藏] 一.环境介绍 二.环境安装 1.安装JDK 2.两台服务器安装tomcat 3.nginx安装 4.keepalive安装 三.负载均衡 四.动静分离 五.keepalive高可用 ...
- keepalived+nginx负载均衡+ApacheWeb实现高可用
1.Keepalived高可用软件 Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能.因此,kee ...
- nginx+keepalived+tomcat+memcache实现双VIP高可用及Session会话保持
Nginx+Keepalived+Tomcat+Memcached 实现双VIP负载均衡及Session会话保持 IP 信息列表: 名称 IP ...
- 22、lnmp_nginx反向代理(负载均衡)、高可用
负载均衡,根据ip和端口号找到相应的web服务器站点(即端口区分): 22.1.nginx的负载均衡: 1.介绍: 网站的访问量越来越大,服务器的服务模式也得进行相应的升级,比如分离出数据库服务器.分 ...
- nginx+keepalived实现 负载均衡 高可用
Vip: 192.168.220.18 Rip1:192.168.220.2 Rip:192.168.220.3 Rip可以配置在一个服务器上通过ip做虚拟主机 1 rs上配置环境 2 配置应用 Yu ...
- nginx配置tomcat负载均衡,nginx.conf配置文件的配置
- nginx 七层负载均衡
[tcp] nginx 七层负载均衡 nginx负载均衡概述 当我们的Web服务器直接面向用户,往往要承载大量并发请求,单台服务器难以负荷,我使用多台Web服务器组成集群,前端使用Nginx负载均衡, ...
随机推荐
- Codeforces 859C - Pie Rules
859C - Pie Rules 思路: dp 我们知道无论谁拿到decider token他拿不拿蛋糕都是确定的,都是使自己最优的结果. 于是 定义状态:dp[i]表示到第i个位置拿到decider ...
- English trip -- VC(情景课)2 B Classroom objects
Vocabulary focus 核心词汇 Listen and repeat. 听并跟读 1. a dictionary 2. paper 3. a pen 4. a ruler 5. a stap ...
- codeforces 568a//Primes or Palindromes?// Codeforces Round #315 (Div. 1)
题意:求使pi(n)*q<=rub(n)*p成立的最大的n. 先收集所有的质数和回文数.质数好搜集.回文数奇回文就0-9的数字,然后在头尾添加一个数.在x前后加a,就是x*10+a+a*pow( ...
- php--------php库生成二维码和有logo的二维码
php生成二维码和带有logo的二维码,上一篇博客讲的是js实现二维码:php--------使用js生成二维码. 今天写的这个小案例是使用php库生成二维码: 效果图: 使用了 php ...
- AsyncTask用法和异步加载图片
AsyncTask:是Android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI ...
- Confluence 6 使用 LDAP 授权连接一个内部目录 - 成员 Schema 设置
请注意:这部分仅在拷贝用户登录(Copy User on Login)和 同步组成员(Synchronize Group Memberships)被启用后可见. 用户组成员属性(Group Membe ...
- 正睿 2019 省选附加赛 Day1 T1 考考试
比较奇怪的一个枚举题. 注意到10=2*5,所以10^k的二进制表示一定恰好在末尾有k个0. 考虑从小到大去填这个十进制数. 填的时候记录一下当前的二进制表示. 每次尝试去填0或者10^k. 如果要填 ...
- 检测Linux glibc幽灵漏洞和修补漏洞
1.首先安装rpm : sudo apt-get install rpm wget -OGHOST-test.sh http://www.antian365.com/lab/linux0day/G ...
- Oracle解析复杂json的方法(转)
转:Oracle解析复杂json的方法 问题背景: 当前在Oracle数据库(11G之前的版本)解析json没有可以直接使用的系统方法,网上流传的PLSQL脚本大多也只可以解析结构较单一的json串, ...
- Docker安装及基础知识
一.安装 & 启动 1.安装Docker [root@tokyo ~]# yum install docker 2.启动Docker服务 (1)旧式的 sysv 语法 [root@tokyo ...