赞
踩
HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速且可靠的一种解决方案。支持4-7层的网络交换,即覆盖所有的TCP协议。也就是说,HAProxy甚至还支持MySQL的负载均衡。
- [root@CentOS7 ~]# tar zxvf haproxy-2.0-dev2.tar.gz
- [root@CentOS7 ~]# cd haproxy-2.0-dev2/
- [root@CentOS7 ~]# unmae -a 获取Linux内核版本(3.0以上版本使用linux2628参数)
- [root@CentOS7 haproxy-2.0-dev2]# make -j 4TARGET=linux2628 PREFIX=/usr/local/haproxy
- [root@CentOS7 haproxy-2.0-dev2]# make install PREFIX=/usr/local/haproxy
注:所有设备均关闭防火墙和SELINUX
- [root@CentOS7 ~]# systemctl stop firewalld
- [root@CentOS7 ~]# setenforce 0
- [root@CentOS7 ~]# vim /usr/local/haproxy/conf/haproxy.cfg
- global
- log 127.0.0.1 local2 日志配置
- maxconn 4086 用于设定最大并发连接数
- chroot /usr/local/haproxy 修改haproxy的工作目录
- uid 99 以指定UID运行haproxy(99为nobody用户)
- gid 99 同UID,不过指定的组名
- daemon 以后台形式运行haproxy
- nbproc 1 指定启动的haproxy进程的个数,最大不能超过
- 物理CPU的核心数
- pidfile /usr/local/haproxy/logs/haproxy.pid pid进程文件位置
-
- defaults
- log global
- log 127.0.0.1 local3 设定日志文件级别
- mode http 设定实例的工作模式(有tcp/http/health三种)
- retries 2 失败重连次数
- option httplog 日志类别,记载http日志
- option httpclose 每次请求完毕后主动关闭http通道
- option dontlognull 不记录空连接产生的日志
- option forwardfor 如果后端服务器需要获得客户端真实IP需要配置
- 的参数,可以从HTTP Header中获得客户端IP
- option redispatch 当对应的服务器宕机时,强制定向到其他可用的服务器
- option httpchk GET /index.html 健康检测
- timeout connect 5000ms 连接超时时间
- timeout client 30000ms 客户端超时时间
- timeout server 30000ms 服务端超时时间
- timeout check 2000 检测超时时间
- balance roundrobin 定义负载均衡算法
- stats uri /haproxy-stats haproxy监控页面的访问地址
-
- frontend http 前端配置,用于定义一系列监听的套接字
- bind 0.0.0.0:80 发起http请求到80端口,会被转发到设置的IP及端口
- default_backend http_back 转发到后端,需写上后端名称
-
- backend http_back 定义后端的服务器
- server s1 192.168.73.156:80 weight 1 minconn 1 maxconn 3 check inter 40000
- server s2 192.168.73.154:80 weight 1 minconn 1 maxconn 3 check inter 40000
- Server1:
- [root@Server1 ~]# yum -y install httpd
- [root@Server1 ~]# echo 192.168.73.156 >> /var/www/html/index.html
- [root@Server1 ~]# systemctl start httpd
-
- Server2:
- [root@Server2 ~]# yum -y install httpd
- [root@Server2 ~]# echo 192.168.73.154 >> /var/www/html/index.html
- [root@Server2 ~]# systemctl start httpd
将Server1节点服务停止,此时访问将只能看到“192.168.73.154”了。如果将其重新启动,会自动加入到集群中去。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。