Haproxy搭建Web集群

  1.Haproxy介绍:

HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。Haproxy是目前比较流行的一种集群调度工具。

2.Haproxy支持多种调度算法:

RR(Round Robin)轮询调度,最简单最常用的一种算法。

LC(Least Connections)最小连接数算法,根据后端的节点连接数大小动态分配前端请求。目前用的比较多的算法。

SH(Source Hashing)基于来源访问调度算法,用于一些有Session会话记录在服务器端的场景,可以基于来源的IP、Cookie等做集群调度。

3.Haproxy 配置中文件通常分为三部分内容,分别如下:

global:  设置全局配置参数,属于进程的配置,通常是和操作系统相关。

defaults:配置默认参数,这些参数可以被用到frontend,backend,Listen组件。

Listen :frontend和backend的组合体。

4.使用haproxy搭建web集群

Haproxy搭建Web集群

4.1 配置Haproxy 服务器  192.168.100.41 

1.编译安装 Haproxy
上传 haproxy-1.4.24.tar.gz 到/opt目录下
[root@localhost ~]# yum -y install pcre-devel bzip2-devel gcc gcc-c++
[root@localhost ~]# cd /opt
[root@localhost opt]# tar xzvf haproxy-1.4.24.tar.gz
[root@localhost opt]# cd haproxy-1.4.24/
[root@localhost opt]#uname -r         #查看linux内核版本信息,要注意操作系统版本信息
3.10.0-957.el7.x86_64
[root@localhost haproxy-1.4.24]# make TARGET=linux31       # 根据内核信息编译
[root@localhost haproxy-1.4.24]# make install

2.配置Haproxy 服务
[root@localhost haproxy-1.4.24]# mkdir /etc/haproxy
[root@localhost haproxy-1.4.24]# cp examples/haproxy.cfg /etc/haproxy/
[root@localhost haproxy-1.4.24]# vi /etc/haproxy/haproxy.cfg
global
    log 127.0.0.1 local0
    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
    clitimeout 50000
    srvtimeout 50000

listen webcluster 0.0.0.0:80
    option httpchk GET /index.html
    balance roundrobin
    server inst1 192.168.100.42:80 check inter 2000 fall 3
    server inst2 192.168.100.43:80 check inter 2000 fall 3

###配置文件解释###

log /dev/log local0 info #配置日志记录 ,日志设备,info信息

log /dev/log local1 notice

maxconn 4096 #最大连接数

uid 99:用户uid gid 99:组用户gid # nobaby用户

listen配置项目一般为配置应用模块参数

listen appli4-backup 0.0.0.0:10004:定义一个appli4-backup的应用

option httpchk /index.html:检查服务器的index.html文件

option persist :强制将请求发送到已经down掉的服务器

balance roundrobin:负载均衡调度算法使用轮询算法

server inst1 192.168.100.42:80 check inter 2000 fall 3:定义在线节点

server inst2 192.168.100.43:80 check inter 2000 fall 3 backup:定义备份节点

4.2 Haproxy日志

[root@localhost haproxy-1.4.24]# touch /etc/rsyslog.d/haproxy.conf
[root@localhost haproxy-1.4.24]# vi /etc/rsyslog.d/haproxy.conf

if ($programname == 'haproxy' and $syslogseverity-text == 'info') then -/var/log/haproxy/haproxy-info.log
& ~
if ($programname == 'haproxy' and $syslogseverity-text == 'notice') then -/var/log/haproxy/haproxy-notice.log
& ~

[root@localhost haproxy-1.4.24]# systemctl restart rsyslog.service

[root@localhost haproxy-1.4.24]# tail -f /var/log/haproxy/haproxy-info.log
Sep 27 00:08:33 localhost haproxy[13864]: 192.168.32.1:57172 [27/Sep/2018:00:07:43.232] webcluster webcluster/inst1 1/0/1/2/50006 404 726 - - cD-- 2/2/1/0/0 0/0 "GET /favicon.ico HTTP/1.1"
Sep 27 00:08:40 localhost haproxy[13864]: 192.168.32.1:57223 [27/Sep/2018:00:07:47.477] webcluster webcluster/inst2 0/0/1/2/52806 200 750 - - cD-- 0/0/0/0/0 0/0 "GET / HTTP/1.1"

4.3 编译安装Nginx服务器1  192.168.100.42

1.编译安装 Nginx
Nginx 安装文件可以从官方网站 下载。
下面以稳定版 Nginx 1.12.2为例 上传至/opt下
[root@localhost ~]#yum -y install pcre-devel zlib-devel gcc-c++
[root@localhost ~]# useradd -M -s /sbin/nologin nginx
[root@localhost ~]# cd /opt
[root@localhost ~]# tar zxvf nginx-1.12.2.tar.gz
[root@localhost ~]# cd nginx-1.12.2
[root@localhost nginx-1.12.2]#
./configure \
--prefix=http://www.likecs.com/usr/local/nginx \
--user=nginx \
--group=nginx


[root@localhost nginx-1.12.2]# make && make install

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wppgdy.html