怎样在Haproxy中搭建Web群集?-创新互联

HAProxy是一个使用C语言编写的自由及开放源代码软件[1],其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。
HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。

湟中ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!

Haproxy 支持多种调度算法,最常用的有三种:

(1)RR:
RR 算法是最简单最常用的一种算法,即轮询调度;

怎样在Haproxy中搭建Web群集?

(2)LC:
LC 算法即最小连接数算法,根据后端的节点连接数大小动态分配前端请求;

怎样在Haproxy中搭建Web群集?

(3)SH:
SH 即基于来源访问调度算法,次算法用于一些有 Session 会话记录在服务器端的场景,可以基于来源的 IP、Cookie 等做集群调度。

怎样在Haproxy中搭建Web群集?

实验示例:

(1)环境准备:

两台 Nginx 服务器,一台 Haproxy调度服务器,一台window作为测试用;

在两台 Nginx服务器写两个测试网页;

所有主机网卡都设置成仅主机模式,修改好网卡信息;

客户端可以通过访问调度服务器,访问到两台节点服务器,不需要访问真实服务器地址。

角色                        IP地址

Haproxy               192.168.100.100

Nginx 01                 192.168.100.201

Nginx 02                 192.168.100.202

window10(作为测试用)  192.168.100.50

怎样在Haproxy中搭建Web群集?

第一步:搭建两台 Nginx 服务器

这边具体细节不再写了,可以看之前的博客,有详细写搭建过程和细节。
搭建好 Nginx服务之后,在 Nginx主页 html 中添加一个测试主页,便于验证实验结果:
第一台:

怎样在Haproxy中搭建Web群集?

怎样在Haproxy中搭建Web群集?

第二台:

怎样在Haproxy中搭建Web群集?

怎样在Haproxy中搭建Web群集?

第二步:搭建 Haproxy

(1)安装编译工具:
yum install bzip2-devel pcre-devel gcc gcc-c++ make -y
(2)可以通过远程挂载将 haproxy压缩包挂载到本地,再解压缩:
 tar zxvf haproxy-1.5.19.tar.gz -C /opt/
 //解压到/opt目录下
(3)编译:
make TARGET=linux3100
注:这个版本号,可以使用 uname -a 命令来查看版本号

怎样在Haproxy中搭建Web群集?

make install
(4)创建文件,进行备份修改:
mkdir /etc/haproxy
cp examples/haproxy.cfg /etc/haproxy/

vim /etc/haproxy/haproxy.cfg

global
     log 127.0.0.1  local0
     log 127.0.0.1  local1 notice
     #log loghost   local0 info
     maxconn 4096
     uid 99
     gid 99
     daemon
     #debug
     #quiet

defaults
     log   global
     mode   http
     option  httplog
     option  dontlognull
     retries 3
     maxconn 2000
     contimeout    5000
     clitimeout    50000
     srvtimeout    50000

listen webcluster 0.0.0.0:80
    option httpchk GET /test.html
    balance roundrobin
    server inst1 192.168.100.201:80 check inter 2000 fall 3
    server inst2 192.168.100.202:80 check inter 2000 fall 3
(5)启动脚本:
cp examples/haproxy.init /etc/init.d/haproxy
 //复制到init.d启动进程中

chmod +x /etc/init.d/haproxy
 //添加执行权限

chkconfig --add haproxy 
 //添加到service,便于识别

ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
 //创建软连接
(6)开启服务:
service haproxy start

怎样在Haproxy中搭建Web群集?

关闭防火墙等环境
[root@Haproxy haproxy-1.5.19]# systemctl stop firewalld.service 
[root@Haproxy haproxy-1.5.19]# setenforce 0

第三步:在 win7 上用浏览器访问调度服务器(192.168.100.100/test.html)

怎样在Haproxy中搭建Web群集?

怎样在Haproxy中搭建Web群集?

第四步:优化日志

对调度器的配置文件进行优化和修改,可以将正常的访问信息和错误的信息分别存放在不同的日志文件中,方便管理;Haproxy的日志默认是输出到系统的 syslog 中,在生产环境中一般单独定义出来。
(1)修改主配置文件
vim/etc/haproxy/haproxy.cfg

修改global段:
log /dev/log   local0 info    //正常访问的信息存放地
log /dev/log   local0 notice   //提示、警告等信息存放地

怎样在Haproxy中搭建Web群集?

(2)重启服务
service haproxy restart
(3)创建文件,并添加规则
[root@Haproxy haproxy]# touch /etc/rsyslog.d/haproxy.conf
[root@Haproxy haproxy]# cd /etc/rsyslog.d/

[root@Haproxy rsyslog.d]# vim 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
&~
(4)重启日志服务
systemctl restart rsyslog.service
(5)查看日志文件: /var/log/haproxy/haproxy-info.log

怎样在Haproxy中搭建Web群集?

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享文章:怎样在Haproxy中搭建Web群集?-创新互联
URL分享:http://ybzwz.com/article/dojgdo.html