设为首页 收藏本站
查看: 2120|回复: 0

[经验分享] ubuntu+haproxy+keepalived主从负载

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-20 10:04:26 | 显示全部楼层 |阅读模式
ubuntu+haproxy+keepalived主从负载 一.测试环境:系统:ubuntu server 12.04   haproxy版本:1.4.24  keepalived版本:keepalived-1.2.7  haporxy01:eth0:172.16.1.36  eth1:192.168.100.36  haporxy02:eth0:172.16.1.37  eth1:192.168.100.37  vip1:172.16.1.30  vip2:172.16.1.31  nignx1 website显示:nginx1  nginx2 website显示:ningx2  nginx3 website显示:nginx3  nginx4 website显示:nginx4 二.网络结构                                    user                                                 |                                      |            (vip1)                  |                 (vip2)          haproxy01-------keepalived-------haproxy02             / \                                          / \                 /   \                                        /   \           /     \                                      /     \          /       \                                    /       \      --------------------------------------------------------      | nginx1   nginx2                  nginx3   nginx4 |      --------------------------------------------------------三.安装1.安装keepalvied  主机haproxy01:   wget http://www.keepalived.org/software/keepalived-1.2.7.tar.gz  tar xf keepalived-1.2.7.tar.gz  cd keepalived-1.2.7  ./configure --prefix=/usr/local/ 提示:  checking for openssl/ssl.h... no  configure: error:   !!! OpenSSL is not properly installed on your system. !!!  !!! Can not include OpenSSL headers files.            !!! 安装libssl.dev  apt-get install libssl.dev 继续:  ./configure --prefix=/usr/local/ 提示:  checking for poptGetContext in -lpopt... no  configure: error: Popt libraries is required 安装libpopt-dev  apt-get install libpopt-dev 继续:  ./configure --prefix=/usr/local/  make  make install 2.编辑keepalived.conf  mkdir /etc/keepalived/  vi /etc/keepalived/keepalived.conf ########  keepalived.conf  ########global_defs {        router_id LVS_DEVEL} vrrp_instance VI_1 {        state MASTER  # haproxy02:BACKUP        interface eth0        virtual_router_id 51        priority 91   # 比haproxy02大        advert_int 1        authentication {                auth_type PASS                auth_pass 123456789        }         virtual_ipaddress {                172.16.1.30        } vrrp_instance VI_2 {        state BACKUP  # haproxy02:MASTER        interface eth0        virtual_router_id 52        priority 90   # 比haproxy02小        advert_int 1        authentication {                auth_type PASS                auth_pass 123456789        }         virtual_ipaddress {                172.16.1.31        }########  keepalived.conf  ######## 3.启动keepalived  /usr/local/sbin/keepalvied -f /etc/keepalived/keepalived.conf  4.查看vip  ip addr显示:  eth0:      inet 172.16.1.30/32 scope global eth0      inet 172.16.1.31/32 scope global eth0 #(haproxy02的keepalived未启动,vip2在haproxy01中,haproxy02中keepalived启动后,vip2自动跳转到haproxy02中eth0上) 主机haproxy02: keepalived安装同上,keepalived.conf如下: ########  keepalived.conf  ########global_defs {        router_id LVS_DEVEL} vrrp_instance VI_1 {        state BACKUP  # haproxy01:MASTER        interface eth0        virtual_router_id 51        priority 90   # 比haproxy01小        advert_int 1          authentication {            auth_type PASS            auth_pass 123456789        }         virtual_ipaddress {                172.16.1.30        } vrrp_instance VI_2 {        state MASTER  # haproxy01:BACKUP        interface eth0        virtual_router_id 52        priority 91   # 比haproxy01大        advert_int 1        authentication {            auth_type PASS            auth_pass 123456789        }         virtual_ipaddress {                172.16.1.31        }########  keepalived.conf  ######## 启动keepalived  /usr/local/sbin/keepalvied -f /etc/keepalived/keepalived.conf查看vip:  ip addr显示:  eth0:      inet 172.16.1.31/32 scope global eth0 # (haproxy中eth0上vip2消失,只有vip1) 停止任意一台keepalived服务,另外一台均可自动生成vip1和vip2,确保2台haproxy高可用性 2.安装haproxy  wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.24.tar.gz  tar xf haproxy-1.4.24.tar.gz   cd haproxy-1.4.24查看ubuntu版本信息:  uname -a显示:  Linux ubuntu37 3.2.0-51-generic #77-Ubuntu SMP Wed Jul 24 20:18:19 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux  make TARGET=37-ubuntu  make PREFIX=/usr/local/haproxy install建立haproxy用户    useradd haproxy 2.编辑haproxy.cfg  mkdir /etc/haproxy  vi /etc/haproxy/haproxy.cfg ########  haproxy.cfg  ########global     log 127.0.0.1 local0     maxconn 51200     user haproxy     group haproxy     daemon defaults     log  127.0.0.1 local3     mode http     option dontlognull     balance roundrobin         retries 2     option redispatch     option abortonclose        maxconn 51200     contimeout 5000     clitimeout 50000     srvtimeout 50000 listen haproxy01     bind 172.16.1.30:80     mode http     option  httpclose      option forceclose     option  forwardfor     option originalto     option  redispatch     balance leastconn     timeout check 5s     stats uri /stats          # haproxy负载监控页面 例:http://172.16.1.30/stats     stats refresh 15s       # 监控页面刷新时间     stats realm baison-test-Haproxy     stats auth admin:admin      # 监控页面账号密码     stats hide-version              # 隐藏haproxy版本信息     cookie  SESSION_COOKIE  insert indirect nocache  maxconn 40960     server nginx1 192.168.100.11:80 weight 1 cookie nginx1 check inter 2000 rise 2 fall 3      server nginx2 192.168.100.12:80 weight 1 cookie nginx2 check inter 2000 rise 2 fall 3 listen haproxy02     bind 172.16.1.31:80     mode http     option  httpclose      option forceclose     option  forwardfor     option originalto     option  redispatch     balance leastconn     cookie  SESSION_COOKIE  insert indirect nocache     maxconn 40960     server nginx3 192.168.100.13:80 weight 1 cookie nginx3 check inter 2000 rise 2 fall 3     server nginx4 192.168.100.14:80 weight 1 cookie nginx4 check inter 2000 rise 2 fall 3########  haproxy.cfg  ########启动haproxy:  /usr/local/haproxy/sbin/haproxy -f /etc/haproxy/haproxy.cfg 主机haproxy02:安装同上,haproxy.cfg同上启动haproxy:  /usr/local/haproxy/sbin/haproxy -f /etc/haproxy/haproxy.cfg 四:测试通过浏览器访问:  http://172.16.1.30页面显示:nginx1、nginx2轮询切换  http://172.16.1.31页面显示:nginx3、nginx4轮询切换可通过监控页面查看负载情况:  http://172.16.1.30/stats 停止任意一台haproxy服务,站点均不受影响 五:haproxy日志1.在/etc/rsyslog.conf中:添加haproxy日志路径:  local0.* /var/log/haproxy.log   local3.* /var/log/haproxy.log取消注释:  #$ModLoad imudp  ==》$ModLoad imudp  #$UDPServerRun 514 ==》$UDPServerRun 514重启rsyslog服务  service rsyslog restart 2.核实services文件  grep 514 /etc/services显示:  syslog 514/udp    为ok!!!如不存在,手动添加:  vi /etc/default/rsyslog  RSYSLOGD_OPTIONS="-r -c 5"重启syslog服务,  service rsyslog restart 六:优化haproxy服务器1.内核结果如下:  sysctl -p  net.ipv4.ip_forward = 1  net.ipv4.ip_nonlocal_bind = 1  net.ipv4.tcp_syncookies = 1  net.ipv4.tcp_tw_reuse = 1  net.ipv4.ip_local_port_range = 1024 65535  net.nf_conntrack_max = 1310720  net.ipv4.tcp_tw_reuse = 1  net.ipv4.tcp_fin_timeout = 15  net.core.netdev_max_backlog = 4096  net.core.rmem_max = 16777216  net.core.somaxconn = 1310720  net.core.wmem_max = 16777216  net.ipv4.tcp_max_syn_backlog = 20480  net.ipv4.tcp_max_tw_buckets = 400000  net.ipv4.tcp_no_metrics_save = 1  net.ipv4.tcp_rmem = 4096 87380 16777216  net.ipv4.tcp_syn_retries = 2  net.ipv4.tcp_synack_retries = 2  net.ipv4.tcp_wmem = 4096 65536 16777216  vm.min_free_kbytes = 65536  net.ipv4.tcp_sack = 1  net.ipv4.tcp_timestamps = 1  net.ipv4.tcp_tw_recycle = 1拷贝至sysctl.conf中  vi /etc/sysctl.conf 2.ulimit数值永久化执行:  ulimit -SHn显示:  1024永久化:a.在/etc/pam.d/login中,添加:  pam_limits.so (有时候系统默认添加)查找文件位置:   find / -name pam_limits.so显示:  /lib/x86_64-linux-gnu/security/pam_limits.sob.在/etc/security/limits.conf中,添加:  root    soft nofile 10240 #实际值  root    hard nofile 10240 #实际值c.修改 /etc/rc.local 添加:  echo 8061540 > /proc/sys/fs/file-max执行:  echo 8061540 > /proc/sys/fs/file-max 3.nginx服务器内核参数优化sysctl -p  net.ipv4.tcp_fin_timeout = 30  net.ipv4.tcp_keepalive_intvl = 2  net.ipv4.tcp_keepalive_probes = 2  net.ipv4.tcp_keepalive_time = 120  net.ipv4.tcp_syn_retries = 10  net.ipv4.tcp_sack = 1  net.ipv4.tcp_timestamps = 1

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-141412-1-1.html 上篇帖子: 负载均衡-haproxy安装配置 下篇帖子: 使用haproxy给mail server做负载均衡
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表