说明: 准备三台主机,前端和node1、node2。前端地址为202.207.178.6,node1:202.207.178.7,202.207.178.8。前端安装HAProxy做反向代理,后端安装httpd提供web服务。(为避免影响,先关闭防火墙)

1、根据需求在两台后端主机上做相应配置,并且提供访问测试页

2、在前端主机安装haproxy

# yum -y install haproxy

3、更改日志记录方式

1)# vim /etc/sysconfig/rsyslog

SYSLOGD_OPTIONS="-c 2 -r"


2)# vim /etc/rsyslog.conf

local2.*                                                /var/log/haproxy.log

4、修改haproxy的配置文件为如下内容

# vim /etc/haproxy/haproxy.cfg

global

# to have these messages end up in /var/log/haproxy.log you will

# need to:

#

# 1) configure syslog to accept network log events.  This is done

#    by adding the '-r' option to the SYSLOGD_OPTIONS in

#    /etc/sysconfig/syslog

#

# 2) configure local2 events to go to the /var/log/haproxy.log

#   file. A line like the following can be added to

#   /etc/sysconfig/syslog

#

#    local2.*                       /var/log/haproxy.log

#

log         127.0.0.1 local2 #定义全局的syslog服务器,最多可以定

                             义两个;

chroot      /var/lib/haproxy #修改haproxy的工作目录至指定的目录并放                         弃权限之前执行chroot()操作,可以提升haproxy的                        安全级别,不过需要注意的是要确保指定的目录为空目

                      录且任何用户均不能有写权限;

pidfile     /var/run/haproxy.pid 

maxconn     4000 #设定每个haproxy进程所接受的最大并发连接数

user        haproxy

group       haproxy

daemon #让haproxy以守护进程的方式工作于后台,其等同于“-D”选项的

                功能,当然,也可以在命令行中以“-db”选项将其禁用;

# turn on stats unix socket

stats socket /var/lib/haproxy/stats


#---------------------------------------------------------------------

# common defaults that all the 'listen' and 'backend' sections will

# use if not designated in their block

#---------------------------------------------------------------------

defaults

mode                    http #设定实例的运行模式或协议

log                     global    #为每个实例启用事件和流量日志

option                  httplog #启用记录HTTP请求、会话状态

                                和计时器的功能

option                  dontlognull

option http-server-close #为每一个请求都附加X-Forwarded-For首部必须启动的项

option forwardfor       except 127.0.0.0/8 #允许在发往服务器的请求首部

                               中插入“X-Forwarded-For”首部

option                  redispatch

retries                 3

timeout http-request    10s

timeout queue           1m

timeout connect         10s

timeout client          1m

timeout server          1m

timeout http-keep-alive 10s

timeout check           10s

maxconn                 3000 #定义最大连接数


listen stats

mode http

bind 0.0.0.0:1080           #定义监听的地址

stats enable

stats hide-version

stats uri     /haproxyadmin?stats #访问地址

stats realm   Haproxy\ Statistics #管理地址

stats auth    admin:admin   #用户名和密码

stats admin if TRUE


frontend web

bind *:80

mode http

log global

option httpclose

option logasap

option dontlognull

capture request  header Host len 20         #捕获并记录指定的请求首部

                                 最近一次出现时的第一个值

capture request  header Referer len 60

default_backend servers

backend servers

balance roundrobin

server web1 202.207.178.7:80 check maxconn 2000

server web2 202.207.178.8:80 check maxconn 2000

5、此时便可启动服务进行测试了

# service haproxy start

在浏览器中访问:

http://202.207.178.6 可以发现后端节点轮询

http://202.207.178.6:1080/haproxyadmin?stats 输入用户名admin和密码admin

                                后可登陆进haproxy的管理界面

此时,HAProxy配置完成!

                        

                                 欢迎批评指正!