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