HAProxy是一款专业提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,HAProxy是完全免费的、借助HAProxy可以快速并且可靠的提供基于TCP和HTTP应用的代理解决方案。


使用Haproxy搭建Web群集(内含源码包)_haproxy


实验环境:一台CentOS7虚拟机作为Haproxy作为调度器,IP地址为192.168.100.120

                 一台CentOS7虚拟机作为第一台Nginx服务器,IP地址为192.168.100.100

                 一台CentOS7虚拟机作为第二台Nginx服务器,IP地址为192.168.100.110

                 一台win7作为客户机进行访问,地址为192.168.100.5


nginx软件包链接:https://pan.baidu.com/s/13ZjTuWPassNW2zKPXYuODA    密码:cd2k

      haproxy软件包链接:https://pan.baidu.com/s/1eG-CrWVLxLKTj7XMSUXzSA         密码:u656

一、搭建一台Nginx服务器

使用Haproxy搭建Web群集(内含源码包)_haproxy_02

安装Nginx所需要的环境包


使用Haproxy搭建Web群集(内含源码包)_haproxy_03

将Nginx安装包解压到/opt目录下


使用Haproxy搭建Web群集(内含源码包)_Linux_04

在Nginx目录下建立一个管理用户名为nginx


使用Haproxy搭建Web群集(内含源码包)_haproxy_05

将安装路径,管理用户和管理组添加到所要下载的模块中


使用Haproxy搭建Web群集(内含源码包)_Linux_06

编译文件并执行安装


使用Haproxy搭建Web群集(内含源码包)_nginx_07

在/usr/local/sbin目录下建立软链接方便管理


使用Haproxy搭建Web群集(内含源码包)_nginx_08

在这台Nginx服务器上建立一个测试首页


使用Haproxy搭建Web群集(内含源码包)_nginx_09

开启nginx服务


使用Haproxy搭建Web群集(内含源码包)_haproxy_10

关闭防火墙,便于客户机进行访问


使用Haproxy搭建Web群集(内含源码包)_haproxy_11

在本地进行自测,首页可以访问的到,到这第一台Nginx配置完成


二、手工编译第二台Nginx服务器,过程和第一台一模一样,这里就不在演示

使用Haproxy搭建Web群集(内含源码包)_nginx_12

这里唯一不同的地方就是网站首页内容,是为了方便进行测试


三、配置Haproxy调度器

使用Haproxy搭建Web群集(内含源码包)_Linux_13

安装Haproxy所需要的环境包


使用Haproxy搭建Web群集(内含源码包)_nginx_14

将Haproxy安装包解压到/opt目录下


使用Haproxy搭建Web群集(内含源码包)_haproxy_15

使用Haproxy搭建Web群集(内含源码包)_haproxy_16

在/opt/haproxy/目录下对文件编译和安装


使用Haproxy搭建Web群集(内含源码包)_haproxy_17

在etc目录下建一个存放主配置文件的目录,接着将配置文件复制一份到这个目录下


使用Haproxy搭建Web群集(内含源码包)_Linux_18

使用Haproxy搭建Web群集(内含源码包)_Linux_19

在配置文件下,注释掉chroot/usr/share/haproxy 和 redispatch两条语句,接着删除所有的listen模块,在最后加上自己规定的listen模块,在这个模块中指定自己的节点服务器


使用Haproxy搭建Web群集(内含源码包)_Linux_20

这里为了便于管理,可以将启动脚本添加到系统的init.d目录下并且赋予其执行权限,接着为了可以让系统可以管理这个服务可以添加到chkconfig中


使用Haproxy搭建Web群集(内含源码包)_Linux_21

使用Haproxy搭建Web群集(内含源码包)_haproxy_22



开启服务并且关闭防火墙


使用Haproxy搭建Web群集(内含源码包)_Linux_23

使用Haproxy搭建Web群集(内含源码包)_haproxy_24

最后用客户机访问这台调度器,可以看到我可以访问到两台节点服务器




Haproxy日志

Haproxy的日志默认输出到系统的syslog中,查看起来不是很方便,为了更好地管理Haproxy的日志,在生产环境中一般单独定义出来

使用Haproxy搭建Web群集(内含源码包)_haproxy_25

使用Haproxy搭建Web群集(内含源码包)_Linux_26

到主配置文件中进行更改,主要是将Haproxy的info及notice日志分别记录到不同的日志文件中


使用Haproxy搭建Web群集(内含源码包)_haproxy_27

重启服务是文件生效


使用Haproxy搭建Web群集(内含源码包)_nginx_28

为了便于管理,将Haproxy相关配置独立定义到haproxy.conf,并放到/etc/rsyslog.d/下,rsyslog启动时会自动加载此目录下的所有配置文件


使用Haproxy搭建Web群集(内含源码包)_nginx_29

在文件中加入以上内容,这里表示的是将Haproxy的info日志记录到/var/log/haproxy/haproxy-info.log下,将notice日志文件记录到/var/log/haproxy/haroxy-notice.log下,配置完成后保存退出


使用Haproxy搭建Web群集(内含源码包)_haproxy_30


重启rsyslog服务


使用Haproxy搭建Web群集(内含源码包)_nginx_31

使用客户机进行访问后便会生成这个日志文件,如果不先访问这台服务器是不会生成这个文件的