说明: 准备三台主机,前端和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配置完成!
欢迎批评指正!