Linux系统架构--Haproxy服务代理Nginx群集

本文介绍了Haproxy,一个用于高可用性和负载均衡的开源软件,尤其适合处理大量并发连接。对比了Haproxy与其他群集调度工具如LVS和Nginx的优缺点,并提供了Haproxy的web群集分析。此外,还概述了搭建包含Nginx和Haproxy的群集架构的实验环境。
摘要由CSDN通过智能技术生成

Haproxy简介

  • Haproxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用的程序代理。
  • Haproxy特别适用于负载特大的web站点,这些站点通常又需要会话保持或七层处理。Haproxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中,同时可以保护你的web服务器不被暴露在网络上
  • Haproxy实现了一种事件驱动,单一进程模型,此模型支持非常大的并发连接数。多进行或线程模型受内存的限制,系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。事件驱动模型因为在有更好的资源和时间管理的用户空间实现所有这些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以使每个cpu时间片做更多的工作

Haproxy搭建web群集分析

  • Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具也有很多,比如LVS和Nginx.相对而言,LVS的性能最好,但是搭建相对复杂,Nginx的upstream模块支持群集功能,但是对群集节点的健康检查功能不强,性能没有Haproxy好
  • Haproxy官网是http://haproxy.1wt.eu/
  •  目前常见的web群集调度器分为软件和硬件两类,软件通常使用开源的LVS、Haproxy、Nginx,硬件一般使用比较多的是F5,当然国内也有一些产品,比如:梭子鱼、绿盟等。

搭建Nginx和Haproxy群集架构

实验环境:

类型IP地址系统软件包
Haproxy调度器192.168.179.148centos7haproxy-1.5.19.tar.gz
Nginx服务器1192.168.179.132centos7nginx-1.12.2.tar.gz
Nginx服务器2192.168.179.228centos7nginx-1.12.2.tar.gz

客户

 

   
  • 配置两台Nginx服务
//解压缩包
tar zxvf nginx-1.12.2.tar.gz -C /opt

//创建用户
useradd -M -s /sbin/nologin nginx

//安装环境依赖包
yum install gcc gcc-c++ pcre pcre-devel zlib-devel -y

//配置
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module

//创建软连接,便于管理服务命令
ln -s /usr/local/nginx/sbin/* /usr/local/sbin

//便于service管理服务
vim /etc/init.d/nginx
#!/bin/bash
# chkconfig: - 99 20
# description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"

case "$1" in
 start)
        $PROG;;
 stop)
        kill -s QUIT $(cat $PIDF);;
 restart)
        $0 stop
        $0 start;;
 reload)
        kill -s HUP $(cat $PIDF);;
 *)
        exit 1
esac
exit 0

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

//添加为系统服务
chkconfig --add nginx 

//创建站点目录
cd /usr/local/nginx/html
vim test.html

<h1>this is web1</h1>
<h1>this is web2</h1>
                               

//启动服务
service nginx start
//验证服务
netstat -ntap | grep nginx

 

  • 配置haproxy服务
yum install pcre-devel pcre bzip2-devel gcc gcc-c++ make -y

//解压缩包
tar zxvf haproxy-1.5.19.tar.gz -C /opt/

//安装配置
make TARGET=linux26
make install


//创建工作目录
mkdir /etc/haproxy
cp examples/haproxy.cfg /etc/haproxy/

//修改配置文件
vim /etc/haproxy/haprox.cfg

注释 #chroot /usr/share/haproxy
注释 #redispatch
删除所有listen
添加
listen webcluster 0.0.0.0:80
	option httpchk GET /test.html
	balance roundrobin
	server inst1 192.168.179.228:80 check inter 2000 fall 3
	server inst1 192.168.179.132:80 check inter 2000 fall 3

//启动脚本
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/

//启动服务
service haproxy start
netstat -ntap | grep haproxy 

//访问代理服务器IP地址haproxy
IP/test.html

  • 日志定义
vim /etc/haproxy/haproxy.cfg

global中更改
log /dev/log	local0 info
log /dev/log	local0 notice

service haproxy restart

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

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值