您的位置:首页 > 运维架构 > Nginx

Nginx负载均衡配合keepalived服务案例实战

2017-04-29 17:11 537 查看
Nginx负载均衡配合keepalived服务案例实战;
在lb01和lb02上配置nginx负载均衡
Nginx负载均衡配置:cat nginx.conf
worker_processes1;
error_loglogs/error.log;
events {
    worker_connections  1024;
}
http {
    server_tokens off;
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
upstreamwww_server_pools{
server10.0.0.9:80 weight = 1;
server10.0.0.10:80 weight = 1;
}
server {
        listen       10.0.0.12:80;
        server_name  www.etiantian.org;
        location/forum/{
       proxy_pass http: www_server_pools;
       proxy_set_header Host $host;
       proxy_set_header X-Forwarded-For$remote_addr;  
                          }
}
}此代理紧代理了www.etiantian.org域名。
在lb01和lb02上配置keepalived服务。
把配置keepalived实现单实例单IP自动接管的keepalived.conf配置到这里面。
在客户端hosts文件中把www.etiantian.org域名解析到VIP10.0.0.12上。
启动nginx,lsof –i:80 ip addr|grep 10.0.0.12 有内容显示
测试:在浏览器中输入www.etiantian.org显示两种访问结果,停掉lb01服务器,观察lb02服务器是否接管VIP10.0.0.12:ip addr|grep 10.0.0.12有内容显示,在浏览器中显示一样。
 

配置Realserver

为Realserver的某块网卡创建启动脚本,脚本内容如下:

#virealserverd      #!/bin/bash

  VIP=172.28.14.227

   ./etc/rc.d/init.d/functions

        case "$1" in

        start)

            echo 1 >/proc/sys/net/ipv4/conf/lo/arp_ignore

            echo 2 >/proc/sys/net/ipv4/conf/lo/arp_announce

            echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore

            echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

            ifconfig lo:0 $VIP broadcast $VIPnetmask 255.255.255.255 up

            /sbin/route add -host $VIP dev lo:0

            sysctl -p > /dev/null2>&1

            echo "realserver startOK"

            ;;

        stop)

            echo 0 >/proc/sys/net/ipv4/conf/lo/arp_ignore

            echo 0 >/proc/sys/net/ipv4/conf/lo/arp_announce

            echo 0 >/proc/sys/net/ipv4/conf/all/arp_ignore

            echo 0 >/proc/sys/net/ipv4/conf/all/arp_announce

            ifconfig lo:0 down

            /sbin/route del $VIP > /dev/null2>&1

            echo "realserver stoped"

            ;;

        *)

            echo "Usage:$0{start|stop}"

            exit 1

        esac

        exit 0

        说明:注意脚本中红色部分,每块网卡绑定一个虚拟IP地址,如果绑定多个虚拟IP,则需要为每块网卡创建一个脚本,并且指定lo:X(比如:lo:0,lo:1等),另外,.和/etc/rc.d/funtions之间有空格。启动keepalived服务,并执行上述脚本,然后用ip a能确认是否有VIP地址。输入ipvsadm-Ln查看LVS工作状态。停止MASTER的keepalived服务,BACKUP能接管VIP地址,再次启动MASTER的keepalived服务,MASTER又能再一次接管VIP地址。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  nginx Keepalived