Haproxy介绍
Haproxy是一个开源的高性能的反向代理或者说是负载均衡服务软件之一,它支持双机热备、虚拟主机、基于TCP和HTTP应用代理等功能。
其配置简单,而且拥有很好的对服务器节点的健康检查功能(相当于keepalived健康检查),当其代理的后端服务器出现故障时,
Haproxy会自动的将该故障服务器摘除,当服务器的故障恢复后Haproxy还会自动将RS服务器添加
Haproxy特别使用与那些访问量很大。但又需要会话保持或七层应用的业务。Haproxy运行在普通的服务器硬件上,仅仅进行简单的优化就可以支持数以万计的并发连接。
并且它的运行模式使得它可以很简单安全的整合到各种网站的架构中,同时使得应用服务器不会暴露到网络中。
Haproxy软件引入了frontend,backend的功能,frontend(acl规则匹配)可以运维管理人员根据任意HTTP请求头做规则匹配,
然后把请求定向到相关的backend(server pools等待前端把请求转过来的服务器组)。通过frontend和backup,
我们可以很容易的实现haproxy的7层代理功能,haproxy是一款不可多得的优秀代理服务软件
Haproxy支持两种主要代理模式:第一个是4层tcp代理(例如:可用于邮件服务内部协议通信服务器、Mysql服务等)。
第二个是7层代理(如HTTP代理)。在4层tcp代理模式下,Haproxy仅在客户端和服务器之间双向转发流量。
但是在7层模式下Haproxy会分析应用层协议,并且能通过运行、拒绝、交换、增加、修改或者删除请求(request)或者回应(reponse)里指定内容来控制协议。
环境介绍
一台centos7作为nginx服务器 192.168.254.1
一台centos7作为nginx服务器 192.168.254.2
一台centos7作为haproxy服务器 192.168.254.3 为两个nginx服务器去实现负载均衡
haproxy部署
搭建nginx(两台服务器操作一样)
nginx:下载https://nginx.org/en/download.html
去链接即可下载tar.gz归档包
放进Linux里
yum -y install pcre-devel zlib-devel gcc make
tar xfv nginx-*.tar.gz -C /usr/src/
cd /usr/src/nginx-*
useradd -M -s /sbin/nologin nginx
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx &&make &&make install
echo "<h1>server 192.168.254.1</h1>" >/usr/local/nginx/html/index.html
如果是web2 改为192.168.254.2区分开
echo "<h1>server 192.168.254.2</h1>" >/usr/local/nginx/html/index.html
/usr/local/nginx/sbin/nginx
开启
killall -9 nginx
关闭
现在两台nginx服务器就全搭建完了
搭建haproxy
HAProxy - The Reliable, High Perf. TCP/HTTP Load Balancerhttps://www.haproxy.org/
我们这里选1.几的版本
yum -y install pcre-devel bzip2-devel gcc-c++
tar xf haproxy-*.tar.gz -C /usr/src/
cd /usr/src/haproxy-*
make TARGET=linux26
make install
mkdir /etc/haproxy
vim /etc/haproxy/haproxy.cfg
写入
global
log /dev/log local0 info
log /dev/log local1 notice
maxconn 4096
uid 99
gid 99
daemon
defaults
log global
mode http
option httplog
option dontlognull
retries 3
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen webcluster 0.0.0.0:80
option httpchk GET /index.html
balance roundrobin
server inst1 192.168.254.1:80 check inter 2000 fall 3
server inst2 192.168.254.2:80 check inter 2000 fall 3
cp /usr/src/haproxy-*/examples/haproxy.init /etc/init.d/haproxy
chmod +x /etc/init.d/haproxy
ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
/etc/init.d/haproxy start
开启
/etc/init.d/haproxy restart
重启
/etc/init.d/haproxy stop
关闭
刷新一下就可以看到流量怎么被均匀分配了