Haproxy 是一种群集调度工具 ,是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。 Haproxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。Haproxy运行在时下的硬件上,完全可以支持数以万计的 并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。
- 本案例中介绍使用Haproxy+Ngin一套Web群集
- 实验需求
- Haproxy作为调度服务器
- Nginx作为节点服务器
- Windows用来测试
服务器主机 | IP | 安装软件 |
---|---|---|
Haproxy服务器 | 192.168.200.102/24 | haproxy-1.5.19.tar.gz |
Nginx服务器1 | 192.168.200.103/24 | nginx-1.12.0.tar.gz |
Nginx服务器2 | 192.168.200.104/24 | nginx-1.12.0.tar.gz |
Windows客户端 | 192.168.200.101/24 | IE浏览器 |
- 安装配置Nginx服务器
# useradd -M -s /sbin/nologin nginx # mount.cifs //192.168.200.1/gx /gx # yum install -y pcre-devel zlib-devel gcc gcc-c++ make # tar /gx/zxvf nginx-1.12.0.tar.gz -C /opt/ # cd /opt/nginx-1.12.0/ ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx # make && make install Nginx服务器1 # echo "this is 7.1" /usr/local/nginx/html/test.html //Nginx1添加测试页面 Nginx服务器2 # echo "this is 7.2" /usr/local/nginx/html/test.html //Nginx2添加测试页面 # ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ # nginx //启动Nginx # systemctl stop firewalld.service //关防火墙 # setenforce 0
- 安装配置Haproxy服务器
# yum install -y pcre-devel bzip2-devel gcc gcc-c++ make # mount.cifs //192.168.200.1/gx /gx # tar zxvf /gx/haproxy-1.5.19.tar.gz -C /opt/ # cd /opt/haproxy-1.5.19/ # make TARGET=linux26 # make install # mkdir /etc/haproxy # cp examples/haproxy.cfg /etc/haproxy/ # vim /etc/haproxy/haproxy.cfg 删除以下语句 chroot /usr/share/haproxy //根目录 redispatch //强制将请求发给已经down的服务器 替换listen开头的行及后面所有行 listen webcluster 0.0.0.0:80 //定义一个webcluster的应用 option httpchk GET /test.html //检查服务器的test.html文件 balance roundrobin //负载均衡调度算法使用轮询算法 server inst1 192.168.200.103:80 check inter 2000 fall 3 //定义在线节点1 server inst2 192.168.200.104:80 check inter 2000 fall 3 //定义在线节点2
- 创建自启动脚本
# cp /opt/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy # chmod +x /etc/init.d/haproxy # chkconfig --add /etc/init.d/haproxy # ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy # service haproxy start //启动Haproxy服务
- Windows客户机测试
- 在浏览器输入 http://192.168.200.102/test.html
- 多刷新几次可以看到Nginx1、Nginx2的测试页面 为搭建成功
- Haproxy日志定义分离
- Haproxy日志默认输出到系统syslog中,查看不方便。
- 为了更好的管理日志,可以将Haproxy的info和notice日志分别记录到不同日志文件
.1:在global下面两行日志文件配置 重新定义分离 # vim /etc/haproxy/haproxy.cfg global log /dev/log local0 info log /dev/log local0 notice # service haproxy restart //修改了配置文件需要重启服务 2:修改rsyslog配置 # touch /etc/rsyslog.d/haproxy.conf # vim /etc/rsyslog.d/haproxy.conf if ($programname == ‘haproxy‘ and $syslogseverity-text == ‘info‘) then -/var/log/haproxy/haproxy-info.log &~ if ($programname == ‘haproxy‘ and $syslogseverity-text == ‘notice‘) then -/var/log/haproxy/haproxy-notice.log &~ # systemctl restart rsyslog.service //重启 rsyslog服务 3:查看日志 # cd /var/log/haproxy/ # cat haproxy-info.log
原文地址:http://blog.51cto.com/13630803/2132060
时间: 2024-10-09 20:16:49