1、安装相关软件库

yum install  -y gcc

2、创建路径下载安装包

mkdir –p /zjl/software

wget http://download.openpkg.org/components/cache/haproxy/haproxy-1.8.6.tar.gz

 

3、创建一个不能登录的用户管理HAProxy

groupadd HAProxy

useradd -s /sbin/nologin –M –g  HAProxy  HAProxy

 

4、创建安装目录:

创建安装目录:  mkdir –p /zjl/program

 

5、编译参数说明(转载自:http://blog.sina.com.cn/s/blog_51d3553f0100u1bb.html):

make TARGET=os ARCH=arch CPU=cpu USE_xxx=1 …

编译之前,首先查看一下系统内核,因为参数与系统内核有关。   uname –r  或  uname –a

2.6.32-504.el6.x86_64

 

参数说明(在README文件中这些参数都有体现)

TARGET

指定对目标操作系统在编译的时候进行优化,可选择如下值之一:

linux22  for Linux 2.2

linux24  for Linux 2.4 and above (default)

linux24e  for Linux 2.4 with support for a working epoll (> 0.21)

linux26  for Linux 2.6 and above

solaris  for Solaris 8 or 10 (others untested)

freebsd  for FreeBSD 5 to 8.0 (others untested)

openbsd  for OpenBSD 3.1 to 4.6 (others untested)

cygwin  for Cygwin

generic  for any other OS.

custom  to manually adjust every setting

如果目标系统不确定,则保持默认值generic即可。

 

CPU

指定对特定的cpu进行优化,可以选择值如下:

i686   for intel PentiumPro, Pentium 2 and above, AMD Athlon

i586   for intel Pentium, AMD K6, VIA C3.

ultrasparc :   Sun UltraSparc I/II/III/IV processor

generic :   any other processor or no specific optimization. (default)

 

ARCH

指定ARCH值可强制编译成圣针对一个特定系统架构程序。

通常用于在一个系统架构的平台上生成针对另一个不同架构平台的程序。

比如:在一个64位架构的目标系统上编译生成一个32位的程序。

当前可选的值有:

x86_64

i386

i486

i586

i686

注意:如果选择上述其中的一个值“-m32”或“-m64”会被添加到CFLAGS和LDFLAG选项中。

 

DEBUG

指定生成调试信息,可通过指定DEBUG= DDEBUG_xxx对特定的代码部分生成调试信息。当前定义的DEBUG宏有:

DEBUG_FULL

DEBUG_MEMORY

DEBUG_FSM

DEBUG_HASH

DEBUG_AUTH

 

USE_PCRE和USE_STATIC_PCRE

可以通过指定“USE_xxx=1”表示使用,“USE_xxx=”表示禁用。

指定是否使用libpcre库中的正则表达式实现来替换系统的libc库中的实现,考虑到使用libpcre库的效率要比libc高,因此推荐此项使用。

注意:

因为libpcre还没有广泛普及,因此在动态链接的时候,需要确保目标系统安装有libpcre的动态库。针对上面的问题,可以使用USE_STATIC_PCRE 指定动态链接libpcre。

使用libpcre编译时,需要确保系统中已经安装了libpcre库。若不使用libpcre,则默认使用系统libc库中的标准正则表达式实现。

强烈推荐使用STATIC_PCRE

 

PREFIX

指定安装目录,默认为/usr/local,其他诸如文档之类的文件将会在PREFIX指定的相应目录下。

 

DESTDIR

指定安装目录,默认没有设置,如果想将haproxy安装一个沙盒中则可以指定该属性。

考虑到我们的系统为Linux,内核2.6+版本的,CPU为x86_64的,可以使用如下命令编译:

make TARGET=linux26 USE_STATIC_PCRE=1

以上参数值用于说明使用,重点是下面所要执行的命令:

为了简便,我们这里不加USE_STATIC_PCRE参数。

make TARGET=linux26  PREFIX=/usr/local/haproxy-1.8.6

 

6、编译命令:

make TARGET=linux26 ARCH=x86_64 PREFIX=/usr/local/haproxy

make install PREFIX=/usr/local/haproxy

 

7、配置文件:

解压后的安装包里examples 文件夹下一些cfg格式的文件都是简单的配置

HAProxy安装及配置

配置:

global
        daemon               # 后台方式运行
        nbproc 1
        pidfile /zjl/program/haproxy/conf/haproxy.pid


defaults
        mode tcp               #默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK
        retries 2               #两次连接失败就认为是服务器不可用,也可以通过后面设置
        option redispatch       #当serverId对应的服务器挂掉后,强制定向到其他健康的服务器
        option abortonclose     #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
        maxconn 4096            #默认的最大连接数
        timeout connect 5000ms  #连接超时
        timeout client 30000ms  #客户端超时
        timeout server 30000ms  #服务器超时
        #timeout check 2000      #=心跳检测超时
        log 127.0.0.1 local0 err #[err warning info debug]


########test1配置#################
listen test1                         #这里是配置负载均衡,test1是名字,可以任意
        bind 0.0.0.0:80            #这里是监听的IP地址和端口,端口号可以在0-65535之间,要避免端口冲突
        mode tcp                     #连接的协议,这里是tcp协议
        #maxconn 4086
        #log 127.0.0.1 local0 debug
        server s1 192.168.244.131:80 #负载的机器
        server s2 192.168.244.130:80 #负载的机器,负载的机器可以有多个,往下排列即可
View Code

相关文章: