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

31.jpg

实验环境:一台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软件包链接:    密码:cd2k

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

一、搭建一台Nginx服务器

1.jpg

安装Nginx所需要的环境包

2.jpg

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

3.jpg

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

4.jpg

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

5.jpg

编译文件并执行安装

6.jpg

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

7.jpg

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

8.jpg

开启nginx服务

9.jpg

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

10.jpg

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

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

11.jpg

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

三、配置Haproxy调度器

12.jpg

安装Haproxy所需要的环境包

13.jpg

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

14.jpg

15.jpg

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

16.jpg

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

17.jpg

18.jpg

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

19.jpg

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

20.jpg

21.jpg

开启服务并且关闭防火墙

22.jpg

23.jpg

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

Haproxy日志

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

24.jpg

25.jpg

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

26.jpg

重启服务是文件生效

27.jpg

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

28.jpg

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

29.jpg

重启rsyslog服务

30.jpg

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