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负载均衡, ...
随机推荐
- 554C - Kyoya and Colored Balls
554C - Kyoya and Colored Balls 思路:组合数,用乘法逆元求. 代码: #include<bits/stdc++.h> using namespace std; ...
- vue.js循环for(列表渲染)详解
vue.js循环for(列表渲染)详解 一.总结 一句话总结: v-for <ul id="example-1"> <li v-for="item in ...
- 雷林鹏分享:Ruby 判断
Ruby 判断 Ruby 提供了其他现代语言中很常见的条件结构.在这里,我们将解释所有的条件语句和 Ruby 中可用的修饰符. Ruby if...else 语句 语法 if conditional ...
- 20170719xlVbaAbsorbProcedure
Sub AbsorbThisProcedure() If Application.VBE.MainWindow.Visible = False Then MsgBox "请先激活VBE编辑窗 ...
- 49 DOM(2)
一.value属性: input ,select 标签 ,textarea 标签中有value属性, 获取他们属性值的方法,先获取该元素ele,然后ele.value得到value值. <!DO ...
- Leha and another game about graph CodeForces - 840B (dfs)
链接 大意: 给定无向连通图, 每个点有权值$d_i$($-1\leq d_i \leq 1$), 求选择一个边的集合, 使得删除边集外的所有边后, $d_i$不为-1的点的度数模2等于权值 首先要注 ...
- pluck的返回值
前言 今天用到了laravel的pluck功能,就顺便记录下来. pluck是获取所读取的数据一列或者两列的方法. 一.获取一列代码如下: ->pluck('pic_url') ; 结果如下: ...
- 『cs231n』RNN之理解LSTM网络
概述 LSTM是RNN的增强版,1.RNN能完成的工作LSTM也都能胜任且有更好的效果:2.LSTM解决了RNN梯度消失或爆炸的问题,进而可以具有比RNN更为长时的记忆能力.LSTM网络比较复杂,而恰 ...
- Matlab scatter 如何显示不同颜色点状
有时候需要在matlab scatter绘图中显示不同颜色区分,如下图是人体血压高压.低压与年龄关系的散点图. 红色点表示高压 绿色点表示低压 用 matlab 如何实现呢? 1.创建一维矩阵x,y1 ...
- 现在转战c++的领域,纯幼儿园
C++中: 如果你用#include<iostream.h>就不需写这句话(旧标准).但是如果你用#include<iostream>就必须要写.但是在VS2010中就出现错误 ...