haproxy部署配置

环境

c1.heboan.com
192.168.88.1
CentOS Linux release 7.2.1511 (Core) 
	yum install -y gcc gcc-c++

在文件中插入以下两行,并重启系统生效

# vim /etc/security/limits.conf
*  soft  nofile  65535
*  hard  nofile  65535

安装

tar xf haproxy-1.6.3.tar.gz 
cd haproxy-1.6.3
make TARGET=linux2628 PREFIX=/application/haproxy-1.6.3
make install PREFIX=/application/haproxy-1.6.3
cp ~/haproxy-1.6.3/examples/haproxy.init /etc/init.d/haproxy
ls -n  /application/haproxy-1.6.3  /application/haproxy
cd /application/haproxy
mkdir conf logs

配置环境变量

vim /etc/profile.d/haproxy.sh
    export PATH=$PATH:/application/haproxy/sbin
source /etc/profile.d/haproxy.sh 
haproxy -v

创建组和用户

groupadd haproxy
useradd -g haproxy -r haproxy
chown -R haproxy.haproxy /application/haproxy
chown -R haproxy.haproxy /application/haproxy-1.6.3

配置日志

# vim /etc/rsyslog.conf 
	$ModLoad imtcp	  去掉这两行注释,第19、20行
	$InputTCPServerRun 514
	...	
	local3.*   /application/haproxy/logs/haproxy.log   #第74行增加此行配置
# systemctl restart rsyslog

配置文件

haproxy安装后是没有默认配置文件的,需要手动创建。本例将创建/application/haproxy/conf/haproxy.cfg
当启动haproxy服务时需要使用-f选项指定配置文件路径
配置文件主要包括全局段与代理段,global代表全局段,defualt、listen、frontend、backend为代理段
fronted: 用来匹配客户端请求的域名或URI等
backend: 定义后端服务器集群
listen: 是frontend与backend的集合,有时仅使用listen即可替代frontend与backend

**********************
global
    log 127.0.0.1 local3 info        #这的local3指定到我们上面配置的rsyslog,info是日志级别
    maxconn 40960  		     #支持每个进程的最大并发数
    chroot /application/haproxy      #将目录切换至/application/haproxy并执行chroot,增强安全性
    user haproxy	             #配置进程的账户
    group haproxy                    #配置进程的组
    daemon			     #配置haproxy以守护进程模式运行
    nbproc 1                         #指定后台进程的数量

defaults			     #默认段,可以被前段和后端继承的,如果不配置就会继承默认段
    log global
    mode http                        #haproxy工作模式,可选项为:tcp、http、health
    option httplog                   #使用http日志
    option dontlognull               #不记录健康检查的连接
    option forwardfor                #允许插入X-Forwarded-For数据包头给后端真实服务器,可以让后端服务器获取真实客户端IP
    option abortonclose              #当服务器负载很高的时候,自动结束掉当前队列处理比较久的连接
    retries 3                        #重试次数
    maxconn 40960                         
    timeout connect 5000             #设置连接最大超时时间,默认单位为毫秒(ms)
    timeout client 5000              #设置客户端最大超时时间,默认单位为毫秒(ms)
    timeout server 5000              #设置服务器端最大超时时间,默认单位为毫秒(ms)

frontend http-in                     #定义终端用户访问的前端服务器,http-in是自己定义的名字
    bind *:80                        #定义一个或多个监听地址及端口
    acl heboan hdr_beg(host) -i www.heboan.com   #定ACL控制请求包头信息通过正则匹配,-i代表不区分大小写
    acl heboan hdr_beg(host) -i heboan.com
    use_backend www_heboan_com if heboan         #当用户请求触发名为heboan的ACL规则时,代理会将请求转发到heboan_server后端服务组
    #default_backend <后端名>                    #可以定义一个默认的后端

    stats enable                     #开启harproxy监控页面
    stats hide-version               #隐藏haproxy版本信息
    stats uri /haproxy-status        #设置监控页面的URI
    stats auth admin:heboan123       #设置监控页面的用户名及密码
    stats admin if TRUE

backend www_heboan_com               #定义后端服务器组
    balance roundrobin               #轮询真实服务器
    cookie SESSION_COOKIE insert indirect nocache
    option httpchk GET /index.html
    server web1 192.168.88.2:80 minconn 100 maxconn 1000 cookie web1 weight 6 check inter 2000 rise 2 fall 4
    server web2 192.168.88.3:80 minconn 100 maxconn 1000 cookie web2 weight 6 check inter 2000 rise 2 fall 4
    #健康检查,健康检查的时间间隔为2000ms,连续2次健康检查成功则认为服务器是有效开启的,连续4次检查检查失败后,认为服务器已经宕机,权重为6

启动haproxy

haproxy -f /application/haproxy/conf/haproxy.cfg

  

原文地址:https://www.cnblogs.com/sellsa/p/7788044.html