Nginx+Keepalived实现负载均衡

OS:Centos 5.7

kernel:2.6.18-274.el5

主:10.10.8.69

备:10.10.8.70

VIP:10.10.8.71

client1:10.10.8.72

client2:10.10.8.73

一,安装gcc等环境

二,下载软件,nginx pcre

nginx:nginx-1.1.11.tar.gz

pcre:pcre-8.21.tar.gz

keepalived-1.1.19.tar.gz

三,安装pcre

解压

tar zxvf pcre-8.21.tar.gz

cd pcre-8.21

编译前的配置:

./configure

配置:

make

安装:

make install

四:安装nginx:

解压:

tar zxv nginx-1.1.11.tar.gz

cd nginx-1.1.11

编译前的配置

./configure --user=www --group=www --prefix=/usr/local/nginx \

--with-http_stub_status_module \

--with-http_ssl_module

make&&make install

配置Nginx:

vi /usr/local/nginx/conf/nginx.conf

user  www;

worker_processes  8;

error_log  logs/error.log;

events {

worker_connections  1024;

}

http {

include       mime.types;

default_type  application/octet-stream;    sendfile        on;

keepalive_timeout  65;

#gzip  on;

upstream  birdman1.7road.com   {

server   10.10.8.72:80;

server   10.10.8.73:80;

}

server {

listen       80;

server_name  birdman1.7road.com;

charset utf-8;

location / {

root   html;

index  index.html index.htm;

proxy_pass        http://birdman1.sosoav.com;

proxy_set_header  X-Real-IP  $remote_addr;

client_max_body_size  100m;

}

location ~ ^/(WEB-INF)/ {

deny all;

}        error_page   500 502 503 504  /50x.html;

location = /50x.html {

root   html;

}    }

}

注:10.10.8.72和10.10.8.73为apache后端服务器。

五:开启转发功能:

sed -i ‘s#net.ipv4.ip_forward = 0#net.ipv4.ip_forward = 1#‘ /etc/sysctl.conf

sysctl -p

六,安装keepalived

tar zxvf keepalived-1.1.19.tar.gz

cd keepalived-1.1.19

./configure --prefix=/usr/local/keepalived

cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/

(1)主服务器配置:

vi /etc/keepalived/keepalived.conf

#################################[MASTER]##############################################

! Configuration File for keepalived

global_defs {

notification_email {

[email protected]

}

notification_email_from [email protected]

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id LVS_DEVEL

}

vrrp_instance VI_1 {

state MASTER

interface eth0

virtual_router_id 51

#define nginx-master-IP

mcast_src_ip 10.10.8.69 #本机IP

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass jesse

}

#define vip

virtual_ipaddress {

10.10.8.71   #为VIP IP10.10.8.71

}

}

####################################################################################

注:设置master的priority为100

(2)备服务器上配置:

###################################[BACKUP]###########################################

! Configuration File for keepalived

global_defs {

notification_email {

[email protected]

}

notification_email_from [email protected]

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id LVS_DEVEL

}

vrrp_instance VI_1 {

state BACKUP

interface eth0

virtual_router_id 51

#define nginx-backup-ip

mcast_src_ip 10.10.8.70 #本机IP

priority 99

advert_int 1

authentication {

auth_type PASS

auth_pass jesse

}

virtual_ipaddress {

10.10.8.71 #为VIP ip

}

}

###################################[BACKUP]###########################################

注:设置backup的priority为99

七,启动keepalived

启动keepalived和加入开机自动启动

/etc/init.d/keepalived start

echo "/etc/init.d/keepalived start" >>/etc/rc.local

命令检查vrrp是否启动

[[email protected] soft]# ip add

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000

link/ether 00:0c:29:04:d9:b0 brd ff:ff:ff:ff:ff:ff

inet 10.10.8.69/24 brd 10.10.8.255 scope global eth0

inet 10.10.8.71/32 scope global eth0

九:监控nginx:此在

vi /shell/nginx_pid.sh

###################################################

#!/bin/bash

while :

do

nginxpid=`ps -C nginx --no-header | wc -l`

if [ $nginxpid -eq 0 ]

then

/usr/local/nginx/sbin/nginx

sleep 5

if [ $nginxpid -eq 0 ]

then

/etc/init.d/keepalived stop

fi

fi

sleep 5

done

###################################################

nohup /bin/bash /shell/nginx_pid.sh &

如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,

那么可以使用nohup命令。该命令可以在你退出root帐户之后继续运行相应的进程.

10.10.8.72和10.10.8.73为后端apache,省略配置

测试:访问http://birdman1.sosoav.com

由于配置client1和client2的内容不同(便于区分),打开http://birdman1.7road.com后显示内容为

10.10.8.72或10.10.8.73

假设10.10.8.69(主)的nginx挂掉:

1,停掉主上得nginx:

[[email protected] ~]# killall nginx

在backup上查看:

[[email protected] ~]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:0c:29:22:31:e3 brd ff:ff:ff:ff:ff:ff
    inet 10.10.8.70/24 brd 10.10.8.255 scope global eth0
[[email protected] ~]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:0c:29:22:31:e3 brd ff:ff:ff:ff:ff:ff
    inet 10.10.8.70/24 brd 10.10.8.255 scope global eth0
    inet 10.10.8.71/32 scope global eth0

以上可见,backup服务器上多了IP10.10.8.71

然后再次访问http://birdman1.sosoav.com 仍能访问。哈哈,成功了

时间: 2024-10-09 22:41:10

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

实战:ansible自动化部署nginx+keepalived+mysql负载均衡集群

一.目的 使用ansible自动化部署nginx+keepalived+mysql负载均衡集群. 二.拓扑规划 三.详细步骤 1.环境的搭建 (1).安装ansible,同时配置私钥免密码进行通信 [[email protected] ~]# ssh-keygen  -t rsa #-t表示使用的加密类型,其中rsa1表示version1版本,rsa.dsa.ecdsa的加密对于的是version2版本 Generating public/private rsa key pair. #这里询问你

nginx keepalived 搭建负载均衡

1下载安装包 yum install -y pcre-devel wget http://www.keepalived.org/software/keepalived-1.2.2.tar.gz tar zxvf keepalived-1.2.2.tar.gz cd keepalived-1.2.2 ./configure --prefix=/usr/local/keepalived make  && make install cp /usr/local/keepalived/sbin/ke

转——Nginx+keepalived实现负载均衡和高可用性 in ubuntu

使用Nginx已经有很长一段时间,但是最近才去实践利用Nginx做负载均衡和高可用性. 大致思路:根据keepalived的特性,通过一个虚拟ip来实现主从服务器的切换,如果一台服务器宕机,可以自动切换到另一台备份服务器,从而不影响用户的访问. 以下是我的安装配置步骤,请大家参考指正. 1:服务器准备 准备两台ubuntu虚拟主机服务器,对应的IP分别是 192.168.1.100   192.168.1.200 两台主机的ip一定要在相同的网段 2:虚拟IP准备 sudo ifconfig  

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等等.在此就不再详述: 三.安装配置Ng

Nginx+Tomcat+Keepalived+Memcache 负载均衡动静分离技术

一.概述 Nginx 作负载均衡器的优点许多,简单概括为: ①实现了可弹性化的架构,在压力增大的时候可以临时添加Tomcat服务器添加到这个架构里面去; ②upstream具有负载均衡能力,可以自动判断下面的机器,并且自动踢出不能正常提供服务的机器: Keepalived 可实现 Nginx负载均衡器双机互备,任意一台机器发生故障,对方都能够将虚拟IP接管过去. Memcache可以实现Tomcat服务器的Sission共享整个拓补如下: 注意: 1.由于服务器有限,IP相同的为同一台机.只是端

Nginx+Tomcat+Keepalived+Memcache负载均衡动离分离技术

一.概述 Nginx 作负载均衡器的优点许多,简单概括为: ①实现了可弹性化的架构,在压力增大的时候可以临时添加Tomcat服务器添加到这个架构里面去; ②upstream具有负载均衡能力,可以自动判断下面的机器,并且自动踢出不能正常提供服务的机器: Keepalived 可实现 Nginx负载均衡器双机互备,任意一台机器发生故障,对方都能够将虚拟IP接管过去. Memcache可以实现Tomcat服务器的Sission共享整个拓补如下: 注意: 1.由于服务器有限,IP相同的为同一台机.只是端

lvs+keepalived+nginx实现高性能负载均衡集群(转)

lvs+keepalived+nginx实现高性能负载均衡集群 一.为什么要使用负载均衡技术? 1.系统高可用性 2.  系统可扩展性 3.  负载均衡能力 LVS+keepalived能很好的实现以上的要求,LVS提供负载均衡,keepalived提供健康检查,故障转移,提高系统的可用性!采用这样的架构以后很容易对现有系统进行扩展,只要在后端添加或者减少realserver,只要更改lvs的配置文件,并能实现无缝配置变更! 二.LVS+Keepalived介绍 1.  LVS LVS是一个开源

LVS+Keepalived实现负载均衡

一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务器集群,也可以是数据库服务器集群,还可以是分布式缓存服务器集群等等. 古人有云:当一头牛拉不动车的时候,不要去寻找一头更强壮的牛,而是用两头牛来拉车. 在实际应用中,在Web服务器集群之前总会有一台负载均衡服务器,负载均衡设备的任务就是作为Web服务器流量的入口,挑选最合适的一台Web服务器,将客户

借助LVS+Keepalived实现负载均衡(转)

原文:http://www.cnblogs.com/edisonchou/p/4281978.html 一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务器集群,也可以是数据库服务器集群,还可以是分布式缓存服务器集群等等. 古人有云:当一头牛拉不动车的时候,不要去寻找一头更强壮的牛,而是用两头牛来拉车. 在实际应用中,在Web服务器集群之前总会有一