Haproxy负载均衡集群架构设计一例

公司最近有一个项目由于用户担心一台单机无法承担最多用户量的使用,要求上应用集群。我们根据应用情况设计了应用集群架构。

架构图如下:

部署应用集群的特点:

1.前端代理负载均衡

因用户环境基础架构采用虚拟化集群平台,服务器均采用虚拟机实现,所以设计时采用单台Haproxy来实现。

前端选用haproxy:有一最大的特点HTTP第7层键康状态检查,香港虚拟主机,与我们实际需要一致,美国空间,因经常有应用压力大,应用无法响应的情况,正好通过这一个特性进行健康状态检查,保证用户透明访问。之前有采用haporxy的主备模式做双机主备应用集群。主备模式也是haproxy的一大特点。

本方案是采用负载均衡模式采用source模式。

2.应用服务器会话复制

配置jboss应用会话复制功能,保证用户登录会话三台服务器共享。

3.共享存储空间

共享存储空间是集群应用的一个必备的功能,这里采用nfs来实现。用来实现代码与附件等数据一致。

4.haproxy配置要点文件记录如下:

(1)取消将日志记录在/var/log/messages目录中

默认会也将haproxy日志记录在/var/log/message中,要去掉。

# vi /etc/syslog.conflocal3.*/var/log/haproxy.loglocal0.*/var/log/haproxy.log*.info;mail.none;authpriv.none;cron.none;local3.none/var/log/messages

(2)haproxy日志切割

haproyx日志切割脚本,没有现成的,就专门写了一个日志切割脚本来实现每天的日志切割,加入到计划任务中,一定要suroot-c强制root权限执行。如果要保留访问日志,可以修改脚本实现。

#!/bin/bash# author: koumm# desc:# date: 2013-01-31# version: v1.0# modify:# cut haproxy logmv /var/log/haproxy.log /var/log/haproxy.log.bakif [ -e /var/log/haproxy.log.bak ]; thenlogrotate -f /etc/logrotate.confchown nobody:nobody /var/log/haproxy.logchmod +x /var/log/haproxy.logfisleep 1if [ -e /var/log/haproxy.log ]; thenrm -rf /var/log/haproxy.log.bakfi

(3)haproxy配置文件记录

globallog 127.0.0.1 local0maxconn 65535chroot /usr/local/haproxyuid 99gid 99stats socket /usr/local/haproxy/HaproxSocket level admindaemonnbproc 1pidfile /usr/local/haproxy/haproxy.pid#debugdefaultslog 127.0.0.1 local3mode httpoption httplogoption httplog clfoption httpclose#option dontlognulloption forwardforoption redispatchretries 2maxconn 2000balance source#balance roundrobinstats uri/haproxy-statsstats refresh 10scontimeout5000clitimeout50000srvtimeout50000listen APP_Cluster 0.0.0.0:80mode httpoption httpchk GET /test.html HTTP/1.0\r\nHost:192.168.0.110server 192.168.0.111_node1 192.168.0.111:80 weight 3 check inter 2000 rise 2 fall 1server 192.168.0.112_node2 192.168.0.112:80 weight 3 check inter 2000 rise 2 fall 1server 192.168.0.113_node3 192.168.0.113:80 weight 3 check inter 2000 rise 2 fall 1listen stats_auth 0.0.0.0:91mode httpstats enablestats uri /adminstats realm “LOGIN”stats auth admin:123456#stats hide-versionstats refresh 10sstats admin if TRUE

本文出自 “koumm的linux技术博客” 博客,美国空间,请务必保留此出处

地球仍然转重,世间依旧善变,而我永远爱你。

Haproxy负载均衡集群架构设计一例

相关文章:

你感兴趣的文章:

标签云: