直接在Centos服务器上部署haproxy 以及 使用docker搭建Haproxy负载均衡、代理服务

服务器 0

一、直接在Centos服务器上部署haproxy负载均衡

1. haproxy的优点:

    负载均衡里比较常用的有nginx,HAproxy,还有linux自带的lvs,一般nginx就够了,不过相比nginx,haproxy还是有不少的优点:

1,haproxy可以代理任何基于TCP的东西--而不仅仅是HTTP。即haproxy工作在第4层或者是第7层,而nginx只能在第7层。
2,相比nginx有非常多的负载均衡算法,包括“最少连接数(least connections)”策略,将后端服务器和最少连接数关联起来;
3,请求可以通过各种各样的东西发送:cookies、URL字符串、客户端IP,等等。
4,提供专用的状态页来告诉你后端服务器的状态、运行时间以及很多齐全的指标。

2. haproxy的下载安装

    haproxy下载地址:http://www.haproxy.com  我这里使用的是:haproxy-1.4.22,下载后执行tar,进入目录执行以下命令完成安装。

mkdir /opt/modules/haproxy
make TARGET=linux26 PREFIX=/opt/modules/haproxy install 

3. haproxy的主要配置

在haproxy目录下创建配置文件:haproxy.conf 内容如下:

[root@kermit conf]# cat /opt/modules/haproxy/haproxy.conf 
global
        log 127.0.0.1   local0
        maxconn 4096
        chroot /opt/modules/haproxy
        daemon
        nbproc 1
        pidfile /opt/modules/haproxy/haproxy.pid
        debug

defaults
        log     127.0.0.1       local3
        mode    http
        option httplog
        option httpclose
        option dontlognull
        option forwardfor
        option redispatch
        retries 2
        maxconn 65535
        balance roundrobin
        stats   uri     /haproxy-stats
        contimeout      5000
        clitimeout      50000
        srvtimeout      50000

listen web_proxy *:80
        server web1 127.0.0.1:98 check inter 2000 rise 2 fall 5
        server web2 127.0.0.1:99 check inter 2000 rise 2 fall 5

4. haproxy的启动和使用

保存好配置文件后,执行命令启动haproxy:

/opt/modules/haproxy/sbin/haproxy -f /opt/modules/haproxy/haproxy.conf  & 

    这里需要注意的是,因为haproxy监听的是 80 端口,所以在启动之前,先确定nginx里不再监听80端口(如上面的配置文件,我服务器上的nginx监听的是98,99端口),这样才能实现haproxy监听80端口,接收到80端口的请求时将这些请求均衡地转发给98,99端口从而实现负载均衡。

    如上面说的haproxy第4点优点,haproxy提供专用的状态页。在配置文件中我们能看到有一项配置:stats   uri     /haproxy-stats 正是这个配置使得我们通过访问 /haproxy-stats来查看haproxy统计信息,截图如下:

centos服务器上部署haproxy负载均衡

二、服务器上使用docker快速搭建Haproxy代理服务

    搜索Haproxy镜像,下载aproxy镜像latest版本,我们选择官方镜像。

docker search haproxy#HAProxy - The Reliable, High Performance TCP…   STARS 1616     OFFICIAL [OK]docker pull haproxylatest: Pulling from library/haproxy33847f680f63: Pull complete

    添加haproxy配置文件,镜像包中也没有找到haproxy配置文件,自己手动添加吧,为了后续方便维护,可以直接将配置目录挂载到容器。 

#cat /etc/haproxylisten redisbind 0.0.0.0:6379mode tcpmaxconn 100server rabbitmq 192.168.11.42:6379        # 配置实际要访问的地址tcp-request content  accept#启动容器docker run -d --name haproxy_REDIS --net=host /-v /etc/haproxy:/usr/local/etc/haproxy /haproxy

此时即成功启动haproxy代理服务。

也许您对下面的内容还感兴趣: