当前位置:首页 > 资讯 > 正文

Haproxy集群介绍

Haproxy集群介绍

目录

什么是Haproxy集群,为什么说它可靠性稳定?

一,Haproxy介绍

二,Haproxy的特性

2.1 Haproxy常见的8种负载均衡策略:

2.2 LVS、Nginx、Haproxy的区别

三、Haproxy 搭建Web群集

部署Haproxy服务器

1、关闭防火墙及核心防护

2、安装依赖环境

3、上传压缩包、解压、编译安装 Haproxy

4、修改 Haproxy服务配置文件

5、添加haproxy 系统服务

部署nginx服务器

1、手动安装nginx

2、配置本地源安装nginx


他是一个用c语言编写的开放源代码软件,提供高可用性,负载均衡及基于TCP和HTTP的应用程序代理

特别对那些负载大的web站点非常适用,这些战地通常需要会话保持或七层处理,它可以支持数以万计的并发连接,并且他的运行模式使得它可以简单安全的整合进当前的架构中,同时保护你的web服务器不被暴露到网络上

  • 可靠性和稳定性非常好,可以与硬件级的F5负载均衡设备相媲美
  • 最高可以同时维护40000-50000个并发连接,单位时间内处理的最大请求数为20000个,最大处理能力可达10Git/s
  • 支持多达8种负载均衡算法,同时也支持会话保持
  • 支持客户端的keepalive功能,减少客户端与haproxy的多次三次握手导致资源浪费,让多个请求在一个tcp连接中完成
  • 基于源的粘性,类似nginx的ip hash功能,把来自同一客户端的请求在一定时间内始终调度到上游的同一服务器
  • 更好统计数据接口,其web接口显示后端集群中各个服务器的接收、发送、拒绝、错误等数据的统计信息
  • 详细的健康状态检测,web接口中有关于对上游服务器的健康检测状态, 并提供了一定的管理功能
  • 基于流量的健康评估机制
  • 基于http认证

2.1 Haproxy常见的8种负载均衡策略:

roundrobin∶表示简单的轮询。
static-rr∶表示根据权重。
leastconn∶ 表示最少连接者先处理。
source∶ 表示根据请求的源IP,类似Nginx的IP hash机制。
ri∶表示根据请求的URI。
rl_param∶表示根据HTTP请求头来锁定每 一 次HTrTP请求。
rdp-cookie (name)∶表示根据据cookie (name)来锁定并哈希每一次TCP请求。

2.2 LVS、Nginx、Haproxy的区别

  1. LVS基于Linux操作系统实现软负载均衡,而Haproxy和Nginx是基于第三方应用实现的软负载均衡
  2. LVS是可实现4层的IP负载均衡技术,无法实现基于目录、URL的转发。而实现Haproxy和Nginx都可以实现4层和7层技术,Haproxy可提供TCP和Http应用的负载均衡综合解决方案
  3. LVS因为工作在ISO模型的第四层,其状态监测功能单一,而Haproxy在状态监测方面功能更丰富、强大,可支持端口、URL、脚本等多种状态监测方式
  4. Haproxy功能强大,但整体性能低于4层模式的LVS负载均衡
  5. Nginx主要用于web服务器或缓存服务器
  6. Haproxy也是支持虚拟主机的
  7. Haproxy支持8种负载均衡器策略
  8. Haproxy的优点能补充nginx的一些缺点,比如支持Session的保持,Cookie的引导,同时支持通过获取指定url来检测后端服务器的状态
  9. Haproxy跟LVS类似,本身就只是一款负载均衡软件,单纯从效率上来讲Haproxy会比Nginx有更出色的负载均衡速度,在并发处理上也是优于Nginx的
  10. Haproxy支持TCP协议的负载均衡转发

1、关闭防火墙及核心防护

常规三步

 
 

2、安装依赖环境

3、上传压缩包、解压、编译安装 Haproxy

 
 
 

4、修改 Haproxy服务配置文件

 
 
 

5、添加haproxy 系统服务

 
 

注意开启haproxy 服务需要关闭nginx服务

第二台虚拟机

1、手动安装nginx

systemctl stop firewalld

systemctl disablle firewalld

setenforce 0

useradd -M -s /sbin/nologin nginx  创建运行用户、组

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

上传nginx-1.15.9.tar.gz至/opt/nginx目录
cd /opt/nginx
tar xzvf nginx-1.15.9.tar.gz 
cd nginx-1.15.9/

编译
https://blog.csdn.net/weixin_71429839/article/details/configure
--prefix=/usr/local/nginx
--user=nginx
--group=nginx
--with-http_stub_status_module

make && make instal    安装  

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/    路径优化

添加 Nginx 系统服务

vim /lib/systemd/system/nginx.service

[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/bin/kill -s HUP $MAINPID
ExecStop=/usr/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

chmod 754 /lib/systemd/system/nginx.service  给权限

systemctl start nginx 开启服务

netstat -anutp | grep nginx

nginx -t 检查配置文件

2、配置本地源安装nginx

cd /etc/yum.repos.d/

mkdir repo.bak

mv *.repo repo.bak/

配置本地nginx安装源

vim nginx.repo

[nginx]
name=nginx.repo
baseurl=https://nginx.org/packages/centos/7/$basearch
enabled=1
gpgcheck=0

yum clean all && yum makecache  清空缓存并更新缓存

yum -y install nginx

systemctl start nginx  开启服务

netstat -ntap| grep nginx  查看服务

rpm -ql nginx  #因为用本地yum安装的nginx,不知道html文件位置,使用rpm -ql 进行查看

配置页面文件 

最新文章