一、下载安装包
mkdir -p /data/toolscd /data/toolswget https://www.haproxy.org/download/2.4/src/haproxy-2.4.4.tar.gz
二、解压下载包
tar xzvf haproxy-2.4.4.tar.gz && cd haproxy-2.4.4解压进入解压目录
三、安装编译
uname -r #查看内核版本yum install gcc make -y # 安装编译工具more README # 查看安装说明#make TARGET=linux31make TARGET=linux31 ARCH=x86_64 prefix=/usr/local/haproxymake install PREFIX=/usr/local/haproxy # TARGET指定内核版本,ARCH指定CPU架构,PREFIX指haprxoy的安装路径。ll /usr/local/haproxy/
四、创建运行账户和组
groupadd --system haproxy #添加haproxy的组useradd --system -M -g haproxy haproxy -s /sbin/nologin #创建haproxy的系统账户到haproxy的组,但是禁止其登陆系统。useradd -r -s /sbin/nologin haproxy
五、创建目录
mkdir -pv /usr/local/haproxy/conf/ready/{tcp,http} # 为多配置文件准备,省略;mkdir -pv /usr/local/haproxy/conf/enabled/{tcp,http} # 为多配置文件准备,省略;mkdir -pv /usr/local/haproxy/logsmkdir -pv /etc/haproxy #创建配置目录mkdir -pv /usr/share/haproxy/ #防止启动出错mkdir /etc/haproxycp examples/option-http_proxy.cfg /etc/haproxy/haproxy.cfg复制开机启动文件:cp examples/haproxy.init /etc/init.d/haproxy赋予权限chmod u+x /etc/init.d/haproxy创建软连接ln -s /usr/local/haproxy/sbin/haproxy /usr/sbin/haproxychkconfig --add haproxychkconfig haproxy onchkconfig --list|grep haproxy注:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。要列出 systemd 服务,请执行 'systemctl list-unit-files'。查看在具体 target 启用的服务请执行'systemctl list-dependencies [target]'。haproxy 0:关 1:关 2:开 3:开 4:开 5:开 6:关#touch /usr/local/haproxy/conf/haproxy.cfg #创建配置文件#ln -s /usr/local/haproxy/conf/haproxy.cfg /etc/haproxy/haproxy.cfg #添加配置文件
服务管理:
启动:service haproxy start systemctl start haproxy停止:service haproxy stop重载:service haproxy restart状态:service haproxy status systemctl status haproxy检查:service haproxy test
处理一个报错
/etc/init.d/haproxy: 第 26 行:[: =: 期待一元表达式● haproxy.service - SYSV: HA-Proxy is a TCP/HTTP reverse proxy which is particularly suited for high availability environments.Loaded: loaded (/etc/rc.d/init.d/haproxy; bad; vendor preset: disabled)Active: inactive (dead)Docs: man:systemd-sysv-generator(8)vim +26 /etc/rc.d/init.d/haproxy26 [ ${NETWORKING} = "no" ] && exit 0改为:26 [ "${NETWORKING}" = "no" ] && exit 0
六、配置日志rsyslog
vim /etc/rsyslog.conf# 取消如下2行注释$ModLoad imudp$UDPServerRun 514# 新增配置:local 1~7 –自定义的日志设备local7.* /var/log/haproxy.log
重启syslog服务
# centos 6.*service rsyslog restart# CentOS 7.*systemctl restart rsyslog
七、启动Haproxy
[root@node1 ~]# /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg[root@node1 ~]# ps -ef |grep haproxy |grep -v greproot 6950 1 0 19:35 ? 00:00:00 /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg或者[root@node1 ~]# service haproxy startStarting haproxy (via systemctl): [ 确定 ][root@node1 ~]# ps -ef |grep haproxy |grep -v grephaproxy 4383 1 0 15:53 ? 00:00:00 /usr/sbin/haproxy -D -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid
haproxy参数说明
-v 显示版本;-vv 显示已知的构建选项。-f 指定配置文件启动;-p 指定pid文件;-d 进入调试模式;-db 仅禁用后台模式。-dM [<byte>] 使用<byte>中毒内存(默认为0x50)-V 进入详细模式(禁用安静模式)-D 去守护进程;-C 在加载文件之前更改为<dir>。-q quiet mode:不显示消息-c check mode:只检查配置文件并退出-n 设置最大连接数(2000)-m 限制可用内存量(以MB为单位)-N 设置默认的每代理最大连接数(2000)-L 设置本地对等名称(默认为hostname)-p 将所有子项的pid写入此文件-de 即使在可用时也禁用epoll()用法-dp 即使在可用时也禁用poll()用法-dS 禁用拼接使用(在旧内核上断开)-dG 禁用getaddrinfo()用法-dV 在服务器端禁用SSL验证-sf/-st [pid]* 完成/终止旧的pid。必须是最后的论点。
