网络攻击,服务器单点故障,区域网络波动都在影响着网络应用的服务质量。
基于HAProxy的多层网络布局,可部分解决这些问题。
下载安装
HAProxy
http://www.haproxy.org/
HAProxy是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,HAProxy是完全免费的,借助HAProxy可以快速并且可靠的提供基于TCP和HTTP应用的代理解决方案。
大多数带包管理系统的Linux系统都可以直接安装HAProxy,也可以从官网上下载源码包自行编译。
配置
HAProxy有TCP和HTTP的代理转发,负载均衡,生存检测等很多功能,一般应用只需要简单使用部分配置即可。
默认配置文件在/etc/haproxy/haproxy.cfg
1 2 3 4 5 6 7 8
| defaults timeout connect 6000 timeout client 30000 timeout server 30000 timeout client-fin 15s timeout server-fin 15s option redispatch maxconn 8000
|
HTTP转发
1 2 3 4 5 6 7 8 9 10 11
| listen web80 bind *:80 mode http http-request set-header Host modify-host.com #可修改Host访问数据 http-request set-header X-Forwarded-For %[src] #可将源链接IP写入Forwarded头 acl site_dead nbsrv lt 1 tcp-request connection reject if site_dead server line1 1.1.1.1:80 check inter 3000 rise 3 fall 3 server line2 2.2.2.2:80 check inter 3000 rise 3 fall 3 server line3 3.3.3.3:80 check inter 3000 rise 3 fall 3 backup server line4 4.4.4.4:80 check inter 3000 rise 3 fall 3 backup
|
line1和line2负载均衡,line3和line4作备线,如果转发线路全部失效,则监听端口拒绝所有tcp连接。
TCP转发
1 2 3 4 5 6 7 8 9
| listen qq4000 bind *:4000 mode tcp timeout tunnel 15s acl site_dead nbsrv lt 1 tcp-request connection reject if site_dead server line1 1.1.1.1:4000 check inter 1500 rise 3 fall 3 server line2 2.2.2.2:4000 check inter 1500 rise 3 fall 3 backup server line3 3.3.3.3:4000 check inter 1500 rise 3 fall 3 backup
|
状态查看
使用hatop -s /run/haproxy/haproxy-sock-name.sock来查看状态
日志默认在/var/log/haproxy-***.log文件
修改完配置后使用service haproxy reload重加载配置
参考