nginx+keepalived做负载均衡解决方案

 

nginx进程基于于Master+Slave多进程模型,自身具有非常稳定的子进程管理功能。在Master进程分配模式下,Master进程永远不进行业务处理,
只是进行任务分发,从而达到Master进程的存活高可靠性,Slave进程所有的业务信号都由主进程发出,Slave进程所有的超时任务都会被Master中止
,属于非阻塞式任务模型。

Keepalived是Linux下面实现VRRP 备份路由的高可靠性运行件。基于Keepalived设计的服务模式能够真正做到主服务器和备份服务器故障时IP瞬间无缝交接。

二者结合,可以构架出比较稳定的软件lb方案
keepalived 只vrrp模式配置参考
MASTER 配置文件
vrrp_instance VI_INET1 {
        state MASTER
        interface eth0
        virtual_router_id 53
        priority 200
        advert_int 1
        authentication {
                auth_type pass
                auth_pass yourpass
        }
        virtual_ipaddress {
                213.138.29.8
                213.138.29.9
        }
}

SLAVE配置
vrrp_instance VI_INET1 {
        state BACKUP
        interface eth0
        virtual_router_id 53
        priority 100
        advert_int 1
        authentication {
                auth_type pass
                auth_pass yourpass
        }
        virtual_ipaddress {
                213.138.29.8
                213.138.29.9
        }
}
Nginx负载均衡配置参考
user    www     www;
worker_processes 10;
pid     /var/run/nginx.pid;
worker_rlimit_nofile 51200;

events
{
        use epoll;
        worker_connections      51200;
}

http
{
        include mime.types;
        default_type application/octet-stream;

        keepalive_timeout 120;

        tcp_nodelay on;

        upstream www.nix-adm.org {
                server  192.168.1.3:80;
                server  192.168.1.4:80;
                server  192.168.1.5:80;
        }

        server {
                listen 80;
                server_name www.nix-adm.org;

                location /{
                        proxy_pass      http://www.nix-adm.org;
                        proxy_set_header Host   $host;
                        proxy_set_header X-Real-IP      $remote_addr;
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                }
        access_log /var/log/access.log combined;

        }

}
SLAVE同步脚本
可以用crontab,每1分钟执行一次,逻辑是:
检查slave和master的配置文件md5 sum,如果不一样,则复制master的配置文件,并重新装载配置,如果进程不存在,则启动进程
#!/bin/sh
#ipv6chia@comsenz.com
#conf
MASTER_HOST=192.168.0.10
CONF=/usr/local/nginx/conf/nginx.conf
PROC=/usr/local/nginx/sbin/nginx
PID=/var/run/nginx.pid

#sum md5
SLAVE_SIG=`md5sum $CONF|awk '{print $1}'`
MASTER_SIG=`ssh $MASTER_HOST "md5sum $CONF"|awk '{print $1}'`
#check sig and reload or start nginx process
[ $SLAVE_SIG != $MASTER_SIG ] && scp $MASTER_HOST:$CONF $CONF && ( kill -HUP `cat $PID` &>/dev/null || eval $PROC ) || ( ! netstat -lnp|grep nginx && eval $PROC )
 
Q&A
2008/07/02 12:22:00 [error] 28639#0: *59 connect() failed (111: Connection refused) while connecting to upstream, client: 214.217.134.19, server: www.nix-adm.org, request: "GET /index.php HTTP/1.1", upstream: "http://192.168.0.12:80/index.php", host: "202.96.80.5"

请检查hostname
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值