Haproxy 安装初体验

20180916 haproxy

Haproxy简介

Haproxy是一款免费的、快速的和稳定的解决方案,提供HA和LB功能,同时对基于TCP的应用和HTTP的应用进行代理,对于流量很大的web站点来说,是一款很适合的软件,世界上很多著名的网站,都有使用。目前,haproxy已经成为一种标准的开源LB软件,在云环境中默认部署。

通过官网可以了解到https://www.haproxy.org/,目前的haproxy已经到1.9,稳定版本是1.8,今天试着了解一下这个1.8的安装和简单实用。

下载解压之后,查看README文件,里面有解压编译安装的方法。系统可以通过uname -a查看内核,然后开始编译,主要的编译阐述是make TARGET=linux26 ARCH=x86_64 PREFIX=/app/haproxy,需要指定内核、指定CPU架构。编译完成后即可进行安装make install,这个很快的。所有的参数都要大写(TARGET ARCH PREFIX),小写不生效。

默认安装后的目录结果是这样的

在该目录下,需要创建如下几个目录,方便使用,bin conf logs var/chroot var/run。这几个目录分别用来存放相关配置。

在conf目录下,主要是用来存放haproxy的主配置文件,主配置文件命名为haproxy.conf 。在haproxy的配置文件中,主要有三块内容:default、global和listen,其中global是用来定义启动haproxy的相关信息,全局配置。

主要是有daemon 后台进程运行,使用haproxy用户和组,log是用来打印日志,通过syslog 514端口 local0设备,来记录haproxy的warning信息。当访问量大时,不要开info信息,信息量很大,对服务器的磁盘压力是很大的。Pidfile的进程号,写入到这个文件中,maxconn是最大连接数,nbproc 8是只开启8个进程,和CPU核数有关。

Default中关键参数,是那些超时参数。

contimeout是连接超时,clitimeout是客户端超时,sertimeout是指服务器超时,这三个超时参数是相关的。30或者50S,毫秒为单位。

第三部分是listen,也就是一个haproxy的实例,名称为www,地址和端口是10.0.0.7,80端口,模式为http。Stats是指有web管理界面,打开web管理界面的方式,是在url后面加/admin?stats,登录的用户名和密码是proxy和oldboy。Balance指负载轮询方式,是用的是RR,forwardfor参数,是用来将client的真实地址,透传给后端的web服务,默认情况下,web服务器记录的是LB的地址,使用了forwardfor参数,就会记录client的真实地址。Httpchk是健康检查。

将该配置文件,传到conf目录下。

说一下环境,现在有两台设备,分别配置了私网地址10.0.0.1和2,公网地址是129和132,然后现在在129上安装了haproxy,通过访问haproxy的公网129地址,来访问私网网站,两台设备上分别启动了nginx,绑定的端口都是私网地址。

配置文件创建之后,可以直接用命令行启动haproxy,需要指定配置文件,-f。

启动之后,有报错,观察一下系统端口情况。

发现有在外网端口上绑定80端口,这个时候就可以访问一下看看。

有错误显示,无法跳转到对应的页面,有可能是健康检查的页面不存在,因为在配置文件中,需要检查站点下的checkstatus页面,目前的页面下,之后index.html文件,所以健康检查不通过,这里修改一下,健康检查的页面为index,然后进程数设置为1.

然后再重新启动一次haproxy,这个时候就可以发现,已经能正常打开了。

 

由于负载方式选择的是RR,所以多尝试几次,会出现不同的页面。

这个时候可以看一下后台的管理页面,登录方式是在url后面加admin?stats。用户名密码都是之前设置的,可以得到如下的画面。

 

Haproxy日志,配置文件中是用使用syslog日志,所以要在rsyslog的配置文件中增加配置信息。rSyslog的配置文件为/etc/rsyslog.conf。

 

猜你喜欢

转载自www.cnblogs.com/bobo137950263/p/9656086.html
今日推荐