keepalived+nginx+tomcat配置lvs疑问,直接通过vip访问时好时坏。

求助各位大神,小弟最近在学习lvs。

简单环境如下:

主机ip说明
lvs-master192.168.0.31ipvsadm+keepalived+nginx
lvs-backup192.168.0.32ipvsadm+keepalived+nginx
realserver01192.168.0.33tomcat
realserver02192.168.0.34tomcat

lvs所使用的vip为192.168.0.30。

系统版本均为rhel6.5。

所有服务器的防火墙及selinux都是关闭状态。


lvs-master中keepalived.conf文件内容如下:

! Configuration File for keepalived

global_defs {
   router_id LVS_TOMCAT
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 30
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.0.30
    }
}

virtual_server 192.168.0.30 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    nat_mask 255.255.255.0
    persistence_timeout 50
    protocol TCP

    real_server 192.168.0.31 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 10
            nb_get_retry 3
            delay_before_retry 3
            connect_prot 80
        }
    }
   
        real_server 192.168.0.32 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 10
            nb_get_retry 3
            delay_before_retry 3
            connect_prot 80
        }
    }
}


lvs-backup中keepalived.conf文件内容如下:

! Configuration File for keepalived

global_defs {
   router_id LVS_TOMCAT
}

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 30
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.0.30
    }
}

virtual_server 192.168.0.30 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    nat_mask 255.255.255.0
    persistence_timeout 50
    protocol TCP

    real_server 192.168.0.31 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 10
            nb_get_retry 3
            delay_before_retry 3
            connect_prot 80
        }
    }
   
        real_server 192.168.0.32 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 10
            nb_get_retry 3
            delay_before_retry 3
            connect_prot 80
        }
    }
}


nginx.conf文件内容如下:

user  root;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/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"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    gzip  on;


    upstream tomcatpool{
        ip_hash;
        server 192.168.0.33:8080;
        server 192.168.0.34:8080;
    }

    server{
        listen   80;
        server_name  192.168.0.30;   
        location /{
            proxy_pass   http://tomcatpool;
        }
    }

}


在两台tomcat服务器上执行了以下脚本:

#!/bin/bash
#add for chkconfig  
#chkconfig: 2345 70 30
# description: Config realserver
SNS_VIP=192.168.0.30

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

case "$1" in
start)
       /sbin/ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP
       /sbin/route add -host $SNS_VIP dev lo:0
       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
       sysctl -p >/dev/null 2>&1
       echo "RealServer Start OK"

       ;;
stop)
       /sbin/ifconfig lo:0 down
       /sbin/route del $SNS_VIP >/dev/null 2>&1
       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
       echo "RealServer Stoped"
       ;;
*)
       echo "Usage: $0 {start|stop}"
       exit 1
esac

exit 0


现在情况是访问192.168.0.30时时好时坏,直接访问192.168.0.31或192.168.0.32就能直接访问到tomcat的8080端口。


各位大神大概知道什么原因吗?

5回答

ylliylli  研发工程师 , nanjingraising
我在搭建环境时也遇到了同样的问题,您现在解决了么显示全部

我在搭建环境时也遇到了同样的问题,您现在解决了么

收起
 2017-07-26
浏览1996
buxl2012buxl2012  系统运维工程师 , linux aix
而且通过vip访问网页时,时好时坏。有时能正常访问,一切正常。可能过一会就不能访问了显示全部

而且通过vip访问网页时,时好时坏。有时能正常访问,一切正常。可能过一会就不能访问了

收起
 2017-04-12
浏览2276
yujin2010goodyujin2010good  系统工程师 , 大型零售巨头
防火墙,selinux等看看显示全部

防火墙,selinux等看看

收起
 2017-04-11
浏览2326
yujin2010goodyujin2010good  系统工程师 , 大型零售巨头
客户端配置回环地址了吗显示全部

客户端配置回环地址了吗

收起
 2017-04-11
浏览2273
buxl2012buxl2012  系统运维工程师 , linux aix
各位大神帮忙看下呗。显示全部

各位大神帮忙看下呗。

收起
 2017-04-11
浏览2228

提问者

buxl2012系统运维工程师, linux aix

问题状态

  • 发布时间:2017-04-10
  • 关注会员:3 人
  • 问题浏览:3540
  • 最近回答:2017-07-26
  • 关于TWT  使用指南  社区专家合作  厂商入驻社区  企业招聘  投诉建议  版权与免责声明  联系我们
    © 2019  talkwithtrend — talk with trend,talk with technologist 京ICP备09031017号-30