Haproxy
LVS不支持正则处理,不能实现动静分离
对于大型网站,LVS的实施配置复杂,维护成本相对较高
Haproxy是一款额提供高可用性负载均衡、即基于TCP和HTTP应用的代理的软件
适用于负载大的文本站点
运行在硬件上可支持数以万计的并发连接的连接请求
支持的调度算法
轮询调度算法 (RR)
最小连接算法 (LC)
基于来源访问调度算法 (SH)
实验
1.修改主机名
hostnamectl set-hostname haproxy
hostnamectl set-hostname web01
hostnamectl set-hostname web02
2.在web节点安装nginx
yum -y install pcre-devel zlib-devel gcc++ gcc
useradd -M -s /sbin/nologin nginx
tar zxf nginx-1.12.0.tar.gz -C /usr/src/
cd /usr/src/nginx-1.12.0/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
make && make install
/usr/local/nginx/sbin/nginx
ss -nlpt | grep 80
echo 'this is web01' > /usr/local/nginx/html/index.html
3.上传haproxy到haproxy节点
4. 安装haproxy所需依赖软件包
yum -y install pcre-devel bzip2-devel gcc-c++
tar zxf haproxy-1.5.19.tar.gz
ls
cd haproxy-1.5.19
make TARGET=linux2628
make install
5.准备配置文件
1.模板文件
2.添加信息
mkdir /etc/haproxy
vi /etc/haproxy/haproxy.cfg
global
log 127.0.0.1 local3
log 127.0.0.1 local1 notice
#log loghost local0 info
maxconn 4096
#chroot /usr/share/haproxy
uid 99
gid 99
daemon
#debug
#quiet
defaults
log global
mode http
option httplog
option dontlognull
retries 3
redispatch
maxconn 2000
contimeout 5000 # 这个已经弃用新版本使用timeout connect
clitimeout 50000 # 这个已经弃用新版本使用timeout client
srvtimeout 50000 # 这个已经弃用新版本使用timeout server
listen web 0.0.0.0:80
option httpchk GET /index.html
balance roundrobin
server web01 192.168.27.129:80 check inter 2000 fall 5
server web02 192.168.27.130:80 check inter 2000 fall 5
6.启动服务
1.拷贝ctl管理文件
cp 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/
日志存放位置
开启udp日志转发
# 开启 UDP 日志协议转发
sed -i 's/#$ModLoad imudp/$ModLoad imudp/g' /etc/rsyslog.conf
sed -i 's/#$UDPServerRun 514/$UDPServerRun 514/g' /etc/rsyslog.conf
打开rcslog日志,配置日志信息
vi /etc/rsyslog.conf
重启日志文件
systemctl restart rsyslog
#文件未生效,重启服务
systemctl restart haproxy