网上查了很多关于haproxy热加载(reload)的文章,大体都有问题,在此记录下,我的安装配置记录。
采用tar包编译安装,下载haproxy2.8.10(tls:长期支持稳定版本)
下载地址:
https://www.haproxy.org/ 摘自官方规划:
Tar包安装,编译支持SSL证书
Tar包目录: /opt/
安装目录: /usr/local/haproxy/
配置文件目录: /etc/haproxy/haproxy.cfg
启停方式: systemctl start|stop|restart|status haproxy
Keepalived 安装在两台服务器上做主备(忽略。)
1. 首先安装依赖
yum install gcc gcc-c++ openssl openssl-devel systemd-devel pcre-devel zlib-devel -y
2. 解压,编译
tar xf haproxy-2.8.10.tar.gz cd haproxy-2.8.10 # 开启支持SSL(centos6, TARGET=linux2628, centos7,TARGET=linux310,当然7也可以指定为linux2628) make TARGET=linux310 PREFIX=/usr/local/haproxy USE_OPENSSL=1 USE_SYSTEMD=1 USE_PCRE=1 USE_ZLIB=1 USE_CRYPT_H=1 USE_LIBCRYPT=1 USE_CPU_AFFINITY=1 USE_THREAD=1 # 安装位置一定要带上,其他编译属性可以不带 make install PREFIX=/usr/local/haproxy # 对于升级过的openssl,指定下两个目录(我的是这俩目录),没升级过,可以忽略 make TARGET=linux310 PREFIX=/usr/local/haproxy USE_OPENSSL=1 USE_SYSTEMD=1 USE_PCRE=1 USE_ZLIB=1 USE_CRYPT_H=1 USE_LIBCRYPT=1 USE_CPU_AFFINITY=1 USE_THREAD=1 SSL_INC=/usr/local/ssl/include SSL_LIB=/usr/local/ssl/lib
3. #完成安装,验证编译属性
/usr/local/haproxy/sbin/haproxy -vv 3.1 #动态链接库文件, 查看执行程序依赖的so动态链接库文件 ldd /usr/local/haproxy/sbin/haproxy | grep ssl
验证没有问题
4. # 软链:ln -s target symbol, 注意这个位置最好选择在(/usr/local/bin目录下),/usr/local/bin{sbin}, 对于链接在/usr/{bin|sbin}/目录下的,也可以,主要考虑/usr/local目录不会随系统升级而影响
ln -s /usr/local/haproxy/sbin/haproxy /usr/local/bin/haproxy
5. # 服务管理脚本(haproxy.service)
有的文章说,热加载,要配合stats 什么sock,其实不需要,直接把这个haproxy.service配置好就可以
题外话:service默认位置
centos: /usr/lib/systemd/system/
ubuntu: /etc/systemd/system/
在该/usr/lib/systemd/system目录下,创建haproxy.service服务,主要是复制源解压包目录下的 /opt/haproxy-2.8.10/admin/systemd/haproxy.service.in文件到system目录下,修改下相关配置为自己的目录
cp /opt/haproxy-2.8.10/admin/systemd/haproxy.service.in /usr/lib/systemd/system/haproxy.service
#编辑haproxy.service文件
vi /usr/lib/systemd/system/haproxy.service
[Unit] Description=HAProxy Load Balancer After=network-online.target Wants=network-online.target [Service] EnvironmentFile=-/etc/default/haproxy EnvironmentFile=-/etc/sysconfig/haproxy Environment="CONFIG=/etc/haproxy/haproxy.cfg" "PIDFILE=/var/run/haproxy.pid" "EXTRAOPTS=-S /etc/haproxy/haproxy-master.sock" ExecStart=/usr/local/bin/haproxy -Ws -f $CONFIG -p $PIDFILE $EXTRAOPTS ExecReload=/usr/local/bin/haproxy -Ws -f $CONFIG -c -q $EXTRAOPTS ExecReload=/bin/kill -USR2 $MAINPID KillMode=mixed Restart=always SuccessExitStatus=143 Type=notify [Install] WantedBy=multi-user.target
注意几个配置意思:
SuccessExitStatus=143:SuccessExitStatus=143 是为了告诉Systemd,如果服务在接收到停止信号后以状态码143退出,这应该被视为服务成功地完成了它的清理工作并终止,而不是一个错误或异常情况
6. # 创建配置文件目录
mkdir /etc/haproxy/
7. # 配置haproxy.cfg
常规按自己要求配置即可。
8. 相关启停
systemctl enable haproxy.service systemctl start haproxy.service systemctl status haproxy.service systemctl reload haproxy.service
标签:haproxy,10,USE,haproxy2.8,service,local,systemd,usr,安装 From: https://www.cnblogs.com/macoffee/p/18307868