Haproxy做负载均衡器+nginx网页架构【haproxy的认识、haproxy应用场景、haproxy的配置】

tech2022-07-16  175

Haprox+nginx网页架构

文章目录

Haprox+nginx网页架构一、haproxy服务认识【1】haproxy应用场景【2】haproxy优势和劣势 二、架构搭建配置1、项目需求:【1】服务器划分【2】项目原理示意图 2、项目配置:【1】手工编译安装nginx服务器,两台服务都一样,为了区别查看效果网页不同【2】haproxy服务器配置【3】访问192.168.60.10/test.html轮询页面效果【4】haproxy日志定义【5】查看日志【6】haproxy参数的优化

一、haproxy服务认识

HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。

【1】haproxy应用场景

HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。

【2】haproxy优势和劣势

HAProxy实现了一种事件驱动, 单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制 、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。事件驱动模型因为在有更好的资源和时间管理的用户空间(User-Space) 实现所有这些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以 使每个CPU时间片(Cycle)做更多的工作。

二、架构搭建配置

1、项目需求:

【1】服务器划分

1】haproxy服务器:192.168.60.10 2】nginx网页1:192.168.60.20 3】nginx网页2:192.168.60.30

【2】项目原理示意图

2、项目配置:

【1】手工编译安装nginx服务器,两台服务都一样,为了区别查看效果网页不同
tar zxvf nginx-1.12.2.tar.gz yum install -y gcc gcc-c++ pcre-devel zlib-devel cd /opt/nginx-1.12.2/ useradd -M -s /sbin/nologin nginx ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx make && make install ln -s /usr/local/nginx/sbin/nginx /usr/sbin/ ln -s /usr/local/nginx/conf/nginx.conf /etc/ //查看配置文件是否正确 nginx -t //编写网页,分别是两台服务器上的 cd /usr/local/nginx/html echo "this is accp web" > test.html echo "this is benet web" > test.html //启动nginx服务 nginx
【2】haproxy服务器配置
yum install -y pcre-devel bzip2-devel gcc gcc-c++ make tar zxvf haproxy-1.5.19.tar.gz cd haproxy-1.5.19 make TARGET=linux26 make install mkdir /etc/haproxy //默认情况下是没有这个目录的,为了顺手起见创建 cp /opt/haproxy-1.5.19/examples/haproxy.cfg /etc/haproxy vim /etc/haproxy/haproxy.cfg -----------------注释default项目下面两行语句-------------------- #chroot /usr/share/haproxy //改变程序执行时所参考的根目录位置 #redispatch //假如代理服务器宕机,还强制发送请求给它 ------------------删除所有listen项目重新添加------------------------ listen webnginx 0.0.0.0:80 //监听的项目名称和地址 option httpchk GET /test.html balance roundrobin server inst1 192.168.60.20:80 check inter 2000 fall 3 server inst2 192.168.60.30:80 check inter 2000 fall 3 ———————————————————————————————————— //设置service命令管理 cp /opt/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy //加权 chmod +x /etc/init.d/haproxy //全局声明haproxy服务的命令 ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy //启动 service haproxy start
【3】访问192.168.60.10/test.html轮询页面效果

【4】haproxy日志定义

//在haproxy服务配置文件中修改启用的日志级别

vim /etc/haproxy/haproxy.cfg log /dev/log local0 info //使用log设备定义日志级别为info log /dev/log local0 notice //重启服务 service haproxy restart

//编写haproxy服务的日志文件,注意路径是/etc/rsyslog.d/haproxy.conf,不是服务配置文件,是日志配置文件

vim /etc/rsyslog.d/haproxy.conf if ($programname == 'haproxy' and $syslogserverity-text == 'info') then #haproxy日志所有信息存放在/var/log/haproxy/haproxy-info.log中这里有一个-符号, 表示是使用异步的方式记录, 因为日志一般会比较大 -/var/log/haproxy/haproxy-info.log #结束语句标识 &~ if ($programname == 'haproxy' and $syslogserverity-text == 'notice') then -/var/log/haproxy/haproxy-notice.log &~ —————————————————————————————————————————————————— //添加配置后重启rsyslog服务 systemctl restart rsysclog.service
【5】查看日志
ls /var/log/haproxy haproxy-info.log haproxy-notice.log
【6】haproxy参数的优化
maxconn:最大连接数,推荐10240 daemon:守护进程模式,建议使用 nbproc:负载均衡的并发进程数,建议与当前服务器CPU核数相等或为其2倍 retries:重试次数,主要用户对集群节点的检查,如果节点多,且并发量大,设置为2次或3次 option http-server-close:主动关闭http请求选项,建议使用 timeout http-keep-alive:长连接超时时间,建议10s timeout http-request:http请求超时时间,建议5-10s,增加http连接释放速度 timeout client:客户端超时时间,建议1min左右,如果访问量过大,节点响应慢,可以设置短一些
最新回复(0)