haproxy实验

一、什么是Haproxy集群

Haproxy 是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及==基于TCP和HTTP==的应用程序代理。

二、Haproxy的特性

-可靠性和稳定性非常好,可以与硬件级的F5负载均衡设备相媲美 -最高可以同时维护40000-50000个并发连接,单位时间内处理的最大请求数为20000个,最大处理能力可达10Git/s -支持多达8 种负载均衡算法,同时也支持会话保持 -支持虚拟主机功能,从而实现web负载均衡更加灵活 -支持连接拒绝、全透明代理等独特功能 -拥有强大的ACL支持,用于访问控制 -其独特的弹性二叉树数据结构,使数据结构的复杂性上升到了0(1),即数据的查询速度不会随着数据条目的增加而速度有所下降 -支持客户端的keepalive功能,减少客户端与haproxy的多次三次握手导致资源量费,让多个请求在一个tcp连接中完成 -支持TCP加速,零复制功能,类似于mmap机制 -支持响应池(response buffering) -支持RDP协议 -基于源的粘性,类似于nginx的ip_hash功能,把来自同一客户端的请求在一定时间内始终调度到上游的同一服务器 -更好统计数据接口,其web接口显示后端冀全中各个服务器的接受、发送、拒绝、错误等数据的统计信息 -详细的健康状态检测,web接口中有关对上流服务器的健康检测状态,并提供了一定的管理功能 -基于流量的健康评估机制 -基于http认证 -基于命令行的管理接口 -日志分析器,可对日志进行分析

三、Haproxy nginx lvs的区别

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服务器或缓存服务器
 

四、haproxy实验配置

⦁    实验条件
⦁    Haproxy:192.168.226.123
⦁    Nginx1:192.168.226.125
⦁    Nginx2:192.168.226.122
⦁    Tomcat1:192.168.226.124:8080
⦁    Tomcat2:192.168.226.129:8080
⦁    配置Haproxy:192.168.226.123
⦁    安装依赖包
yum -y install pcre-devel zlib-devel gcc gcc-c++ make
⦁    编译安装Haproxy
解压安装包
tar zxf haproxy-1.5.19.tar.gz
cd haproxy-1.5.19/
查看内核版本数(如果kernel大于2.6.28的用TARGET=linux2628)
uname -r
编译安装
make TARGET=linux2628 ARCH=x86_64
make install
 
⦁    配置服务器配置文件

mkdir /etc/haproxy
cp examples/haproxy.cfg /etc/haprox y/
cd /etc/haproxy/
编辑文件
vim haproxy.cfg
# this config needs haproxy-1.1.28 or haproxy-1.2.1
global
        #log 127.0.0.1  local0
        #log 127.0.0.1  local1 notice
        log /dev/log    local1 info
        log /dev/log    local1 info
        maxconn 4096
        #chroot /usr/share/haproxy
        uid 99
        gid 99
        daemon
        nbproc 1
        #debug
        #quiet
defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        retries 3
        redispatch
        maxconn 2000
        #contimeout     5000
        #clitimeout     50000
        #srvtimeout     50000
        timeout http-request 10s
        timeout queue 1m
        timeout connect 10s
        timeout client 1m
        timeout server 1m
        timeout http-keep-alive 10s
        timeout check 10s
listen  webjq 0.0.0.0:80
        option httpchk GET /index.jsp
        balance roundrobin
        server  ng1 192.168.226.125:8080  check inter 2000  fall 5
        server  ng2 192.168.226.122:8080  check inter 2000  fall 5
⦁    添加系统服务
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/haproxy
service haproxy start    或    /etc/init.d/haproxy start

nginx安装

⦁     安装Nginx1:192.168.226.125 Nginx2:192.168.226.122
⦁    安装依赖包
yum -y install pcre-devel zlib-devel gcc gcc-c++ make
⦁    解压并编译安装
tar -zxf nginx-1.12.2.tar.gz
cd /opt#切换至解压后的目录下编译
cd nginx-1.12.2
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module\
 --with-stream
#安装
make && make install -j4
⦁    创建软链接让系统识别并nginx命令并添加入服务
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
将nginx命令并添加入服务
cd /lib/systemd/system
vim nginx.service

#!/bin.bash
[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
⦁    新建用户和组便于管理
useradd -M -s /sbin/nologin nginx
⦁    启动并测试Nginx和Haproxy是否正常运行
Nginx1
echo "nginx1192.168.226.125" > /usr/local/nginx/html/index.html
systemctl restart nginx.service
Nginx2
echo "nginx2192.168.226.122" > /usr/local/nginx/html/index.html
systemctl restart nginx.service
⦁    测试集群是否成功
  

 

nginx反向代理 

⦁    实验条件
⦁    Haproxy:192.168.226.123
⦁    Nginx1:192.168.226.125
⦁    Nginx2:192.168.226.122
⦁    Tomcat1:192.168.226.124:8080
⦁    Tomcat2:192.168.226.129:8080
⦁    配置Tomcat
⦁    配置nginx的Tomcat反向代理
 
3.测试Nginx负载均衡

 

 

实验结果

 

 

 


              

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值