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

Haprox+nginx网页架构

一、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左右,如果访问量过大,节点响应慢,可以设置短一些
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值