[root@c01 tmp]# fpm -s dir -t rpm -v 1.7.7 -n haproxy --before-install /tmp/haproxy_before.sh --after-install /tmp/haproxy_after.sh --after-remove /tmp/haproxy_remove.sh -d 'libaio' /apps/haproxy-1.7.7/ /etc/init.d/haproxy_sc
查看脚本:
[root@c01 tmp]# cat haproxy_before.sh
#!/bin/bash
if [ ! -d /apps/haproxy-1.7.7 ];then
mkdir -p /apps/haproxy-1.7.7
fi
[root@c01 tmp]# cat haproxy_after.sh
#!/bin/bash
mkdir /apps/haproxy-1.7.7/conf
echo "
global
log 127.0.0.1 local0 info #[err warning info debug] //日志位置
maxconn 4096
daemon #设置成后台运行
nbproc 1 #进程数量
pidfile /apps/haproxy-1.7.7/haproxy.pid
defaults
log global
mode http #默认模式
option httplog #http日志格式
option dontlognull
retries 3 #三次失败后认为服务器不可用
option redispatch #如果cookie写入了serverId而客户端不会刷新cookie,当serverId对应的服务器挂掉后,强制定向到其他健康的服务器
maxconn 2000 #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接默认的最大连接数
contimeout 5000 #连接超时
clitimeout 30000 #客户端超时
srvtimeout 30000 #服务器超时
frontend web_in
mode http
maxconn 1000
bind :80
acl is_a hdr_beg(host) -i www.espressos1.com #判断域名是不是www.espressos1.com,是则给与a服务器集群服务
acl is_b hdr_beg(host) -i www.espressos2.com #判断域名是不是www.espressos2.com,是则给与a服务器集群服务
use_backend a_server if is_a
use_backend b_server if is_b
backend a_server
mode http #http 模式
stats uri /haproxy
balance roundrobin
cookie JSESSIONID prefix
stats hide-version
option httpclose
server web1 10.100.0.220:80 check
#server web2 128.1.2.5:80 check
backend b_server
mode http #http 模式
stats uri /haproxy
balance roundrobin
cookie JSESSIONID prefix
stats hide-version
option httpclose
server web1 10.100.0.229:80
">/apps/haproxy-1.7.7/conf/haproxy.conf.acl
echo "
global
log 127.0.0.1 local0 info
maxconn 51200
user nobody
group nobody
daemon
nbproc 1
pidfile /var/run/haproxy.pid
defaults
log global
mode http
option httplog
option tcplog
option httpclose
option forwardfor except 127.0.0.0/8
option redispatch
option dontlognull
retries 3
timeout connect 10s
timeout client 1m
timeout server 1m
timeout check 5s
timeout http-request 10s
timeout http-keep-alive 10s
timeout queue 1m
maxconn 10000
listen admin_stats
bind 0.0.0.0:9001
mode http
stats refresh 30s
stats uri /ha-stu
stats realm welcome login\ Haproxy
stats auth admin:admin@!
stats hide-version
stats admin if TRUE
#
listen mysql
bind 0.0.0.0:3306
mode tcp
# balance roundrobin
balance source
server mysql-01 xxx.xxx.xxx.xxx:3306
#
listen mysql-ds
bind 0.0.0.0:3307
mode tcp
# balance roudrobin
balance source
server mysql-02 xx.xxx.xxx.xxx:3306
">/apps/haproxy-1.7.7/conf/haproxy.conf.nomal
[root@c01 tmp]# cat haproxy_remove.sh
#!/bin/bash
if [ -d /apps/haproxy-1.7.7 ];then
rm -rf /apps/haproxy-1.7.7
fi