Nginx+Keepalived实现负载均衡高可用

一、环境

5台虚拟机,分别是:

1台测试机(192.168.2.83);

2台nginx/keepalived(192.168.2.235/192.168.2.236);

2台Web Servers(192.168.2.237/192.168.2.238);

注:VIP设置为 192.168.2.229;

二、安装配置Web Server

由于Web Server的安装与配置非常简单,根据自己喜好,安装一个即可;比如:apache、nginx、tomcat等等。在此就不再详述;

三、安装配置Nginx

yum -y install gcc vim lrzsz pcre-devel kernel-devel openssl-devel wget

wget http://nginx.org/download/nginx-1.9.0.tar.gz

tar xzvf nginx-1.9.0.tar.gz

cd nginx-1.9.0

./configure --prefix=/usr/local/nginx --with-debug --with-http_stub_status_module --with-stream --with-http_ssl_module

make;make install

ln -s /usr/local/nginx/sbin/nginx  /sbin/

cd /usr/local/nginx/conf

cp nginx.conf nginx.conf.bak

编辑nginx主配置文件nginx.conf,内容大致如下:

worker_processes  10;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘
                      ‘$status $body_bytes_sent "$http_referer" ‘
                      ‘"$http_user_agent" "$http_x_forwarded_for"‘;
    sendfile        on;
    keepalive_timeout  65;
    upstream html_pool {
        server 192.168.2.237:80;
        server 192.168.2.238:80;
        }
    server {
        listen       80;
        server_name  localhost;
        location / {
         proxy_pass     http://html_pool;
         proxy_set_header   Host             $host;
         proxy_set_header   X-Real-IP        $remote_addr;
         proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

注:以上的操作,两台都需要操作;到此,我们的Nginx就安装及配置好了。

四、安装配置Keepalived

wget  http://www.keepalived.org/software/keepalived-1.2.15.tar.gz
tar xzvf keepalived-1.2.15.tar.gz
cd keepalived-1.2.15
./configure --sysconf=/etc/ --with-kernel-dir=/usr/src/kernels/2.6.32-504.23.4.el6.x86_64/

#内核参数,根据不同的操作系统,会不一样,注意更改为您服务器上的内核路径即可;

make
make install
ln -s /usr/local/sbin/keepalived /sbin/
cd /etc/keepalived/
cp keepalived.conf keepalived.conf.bak

编辑keepalive.conf主配置文件,内容大致如下:

! Configuration File for keepalived

global_defs {
   router_id LVS_DEVEL
}

vrrp_script chk_nginx {
        script "/etc/keepalived/check_nginx.sh"
        interval 2
        weight 2
        }

vrrp_instance VI_1 {
    state MASTER/BACKUP        #前主后备
    interface eth0
    virtual_router_id 60
    priority 100/80        #前主后备
    advert_int 3
    authentication {
        auth_type PASS
        auth_pass 33333
    }
    virtual_ipaddress {
        192.168.2.229
    }
        track_script {
                chk_nginx
        }
}

因为主配置文件里有用到一个检测nginx状态的脚本,所以另外需要创建脚本,内容如下:

# cat check_ngix.sh

#!/bin/bash
nginx_start=`ps -C nginx --no-header |wc -l`
if [ $nginx_start = 0 ]; then
#/etc/init.d/nginx start
/usr/local/nginx/sbin/nginx
sleep 3
nginx_status=`ps -C nginx --no-header |wc -l`
if [ $nginx_status = 0 ]; then
/etc/init.d/keepalived stop
fi
fi

chmod +x /etc/keepalived/check_nginx.sh

注:同样,以上的所有操作,需要两台服务器上一样操作,注意更改主备及优先级即可;到此,keepalive的相关安装与配置即OK了;

五、校验及测试

  1. 启动keepalived(两台):/etc/init.d/keepalived start
  2. 在主服务器上随意把nginx或者keepalived服务关闭,观察服务的可用性;
  3. 如果飘到备服务器上了,同样,在备服务器上随意把nginx或者keepalived服务关闭,再观察;
  4. 最后需要注意的是,如果服务器上有启用安全软件,比如ipatalbes,一定要让服务器间相互访问,不仅仅是ping通;如:iptables -I INPUT -s 192.168.2.0/24 -j ACCEPT
时间: 2024-08-26 06:09:35

Nginx+Keepalived实现负载均衡高可用的相关文章

LVS+keepalived实现负载均衡&高可用

一.实验环境需求&准备 我们这次实验要完成的一个架构如下图所示,我们通过LVS-DR-MASTER,LVS-DR-BACKUP作为LVS负载均衡调度器,并且两者之间通过keepalived来两者之间的HA.keepalived本身就是为了LVS为开发的,所以说我们通过keepalived来进行LVS的配置就显得十分的方便.而且keepalived是直接操作ip_vs不用通过ipvsadm,所以更加方便. 1)实验架构图&需求表: 角色 IP地址 备注 主LVS调度器(MASTER) 192

LVS+keepalived+DR 负载均衡高可用

准备两台web服务器,准备好测试页面,以便查看结果.(centos6) 1.下载相关服务,并关闭防火墙和SElinux yum -y install httpd (一般自带都有) yum -y install keepalived (master和slave) yum -y install ipvsadm (master) service iptables stop setenforce 0 2.分别在两台web服务器添加一下测试页面添加不同内容 vim /var/www/html/index.

HAProxy+Keepalived实现负载均衡高可用

一.环境 5台虚拟机,分别是: 1台测试机(192.168.2.83); 2台haproxy/keepalived(192.168.2.230/192.168.2.231); 2台Web Servers(192.168.2.232/192.168.2.233); 注:VIP设置为 192.168.2.228: 二.安装配置Web Server 由于Web Server的安装与配置非常简单,根据自己喜好,安装一个即可:比如:apache.nginx.tomcat等等.在此就不再详述: 三.安装配置

CentOS Linux 负载均衡高可用WEB集群之Nginx+Keepalived配置

Nginx+Keepalived实现负载均衡高可用的WEB服务集群,nginx作为负载均衡器,keepalived作为高可用,当其中的一台负载均衡器(nginx)发生故障时可以迅速切换到备用的负载均衡器(nginx),保持业务的连续性. 1.服务器的环境配置及IP分配 操作系统:CentOS release 6.7 (Final) nginx版本:nginx/1.8.0 keepalived版本:Keepalived v1.2.13 Nginx + keepalived服务器的IP分配表 服务器

linux系统下对网站实施负载均衡+高可用集群需要考虑的几点

随着linux系统的成熟和广泛普及,linux运维技术越来越受到企业的关注和追捧.在一些中小企业,尤其是牵涉到电子商务和电子广告类的网站,通常会要求作负载均衡和高可用的Linux集群方案. 那么如何实施linux集群架构,才能既有效保证网站健康运行,又能节省运维成本呢?下面依据近几年的运维经历,简单梳理下自己的一点感悟. (1)机房的选择如果有自己公司的机房那是再好不过的了:如果没有,建议放在BGP机房内托管,如果有选择的话,最好是选择带有硬件防火墙的机房,这样在安全方面也有保障:网站如若是放在

Nginx+Keepalived 实现反代 负载均衡 高可用(HA)配置

Nginx+Keepalived实现反代负载均衡高可用(HA)配置 Nginx+Keepalived实现反代负载均衡高可用配置 OS IP 子网掩码 路由网关 Centos6.6 nginx Keepalived Eth0:192.168.26.210 255.255.252.0 192.168.25.3 VIP:192.168.27.210 Centos6.6 Nginx Keepalived Eth0:192.168.26.211 255.255.252.0 192.168.25.3 VIP

Nginx+Keepalived负载均衡高可用(双机热备)

Nginx+Keepalived负载均衡高可用(双机热备) 1.1 Nginx安装及配置 1.2 Keepalived安装及配置 1.3 WebServer安装 1.4 测试Nginx+Keepalived 环境如下: CentOS 6.4_64K eepalived-1.2.12 Nginx-1.4.4 vip:192.168.10.50 master:192.168.10.11 backup:192.168.10.12 webserver1:192.168.10.13 webserver2:

Nginx + Keepalived(主备模式)实现负载均衡高可用浅析

概述 目前关于负载均衡和高可用的架构方案能找到相当多且详尽的资料,此篇是自己学习相关内容的一个总结,防止将来遗忘再次重新查找资料,也避免踩相同的坑. 此次配置的负载均衡与高可用架构:Nginx + Keepalived(主备模式),Nginx 使用反向代理实现七层负载均衡. 众所周知,Nginx 是一款自由的.开源的.高性能HTTP服务器和反向代理服务器,也是一个IMAP.POP3.SMTP代理服务器. 也就是说Nginx本身就可以托管网站(类似于Tomcat一样),进行HTTP服务处理,也可以

Keepalived+Nginx实现负载均衡高可用

一.负载均衡高可用 Nginx作为负载均衡器,所有请求都到了Nginx,可见Nginx处于非常重点的位置,如果Nginx服务器宕机后端web服务将无法提供服务,影响严重. 为了避免负载均衡服务器的宕机故障,需要建立一个备份机.主备机上都运行高可用(High Availability)监控程序,通过传送心跳信息来监控对方的运行状况.当备份机不能在一定的时间内收到对方的正常心跳时,它就接管主服务器的服务IP并继续提供负载均衡服务:当备份管理器又从主管理器收到"I am alive"这样的信