一、下载安装包

  1. mkdir -p /data/tools
  2. cd /data/tools
  3. wget https://www.haproxy.org/download/2.4/src/haproxy-2.4.4.tar.gz

二、解压下载包

  1. tar xzvf haproxy-2.4.4.tar.gz && cd haproxy-2.4.4
  2. 解压进入解压目录

三、安装编译

  1. uname -r #查看内核版本
  2. yum install gcc make -y # 安装编译工具
  3. more README # 查看安装说明
  4. #make TARGET=linux31
  5. make TARGET=linux31 ARCH=x86_64 prefix=/usr/local/haproxy
  6. make install PREFIX=/usr/local/haproxy # TARGET指定内核版本,ARCH指定CPU架构,PREFIX指haprxoy的安装路径。
  7. ll /usr/local/haproxy/

四、创建运行账户和组

  1. groupadd --system haproxy #添加haproxy的组
  2. useradd --system -M -g haproxy haproxy -s /sbin/nologin #创建haproxy的系统账户到haproxy的
  3. 组,但是禁止其登陆系统。
  4. useradd -r -s /sbin/nologin haproxy

五、创建目录

  1. mkdir -pv /usr/local/haproxy/conf/ready/{tcp,http} # 为多配置文件准备,省略;
  2. mkdir -pv /usr/local/haproxy/conf/enabled/{tcp,http} # 为多配置文件准备,省略;
  3. mkdir -pv /usr/local/haproxy/logs
  4. mkdir -pv /etc/haproxy #创建配置目录
  5. mkdir -pv /usr/share/haproxy/ #防止启动出错
  6. mkdir /etc/haproxy
  7. cp examples/option-http_proxy.cfg /etc/haproxy/haproxy.cfg
  8. 复制开机启动文件:
  9. cp examples/haproxy.init /etc/init.d/haproxy
  10. 赋予权限
  11. chmod u+x /etc/init.d/haproxy
  12. 创建软连接
  13. ln -s /usr/local/haproxy/sbin/haproxy /usr/sbin/haproxy
  14. chkconfig --add haproxy
  15. chkconfig haproxy on
  16. chkconfig --list|grep haproxy
  17. 注:该输出结果只显示 SysV 服务,并不包含
  18. 原生 systemd 服务。SysV 配置数据
  19. 可能被原生 systemd 配置覆盖。
  20. 要列出 systemd 服务,请执行 'systemctl list-unit-files'
  21. 查看在具体 target 启用的服务请执行
  22. 'systemctl list-dependencies [target]'
  23. haproxy 0:关 1:关 2:开 3:开 4:开 5:开 6:关
  24. #touch /usr/local/haproxy/conf/haproxy.cfg #创建配置文件
  25. #ln -s /usr/local/haproxy/conf/haproxy.cfg /etc/haproxy/haproxy.cfg #添加配置文件

服务管理:

  1. 启动:service haproxy start systemctl start haproxy
  2. 停止:service haproxy stop
  3. 重载:service haproxy restart
  4. 状态:service haproxy status systemctl status haproxy
  5. 检查:service haproxy test

处理一个报错

  1. /etc/init.d/haproxy: 26 行:[: =: 期待一元表达式
  2. haproxy.service - SYSV: HA-Proxy is a TCP/HTTP reverse proxy which is particularly suited for high availability environments.
  3. Loaded: loaded (/etc/rc.d/init.d/haproxy; bad; vendor preset: disabled)
  4. Active: inactive (dead)
  5. Docs: man:systemd-sysv-generator(8)
  6. vim +26 /etc/rc.d/init.d/haproxy
  7. 26 [ ${NETWORKING} = "no" ] && exit 0
  8. 改为:
  9. 26 [ "${NETWORKING}" = "no" ] && exit 0

六、配置日志rsyslog

  1. vim /etc/rsyslog.conf
  2. # 取消如下2行注释
  3. $ModLoad imudp
  4. $UDPServerRun 514
  5. # 新增配置:local 1~7 –自定义的日志设备
  6. local7.* /var/log/haproxy.log

重启syslog服务

  1. # centos 6.*
  2. service rsyslog restart
  3. # CentOS 7.*
  4. systemctl restart rsyslog

验证

七、启动Haproxy

  1. [root@node1 ~]# /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg
  2. [root@node1 ~]# ps -ef |grep haproxy |grep -v grep
  3. root 6950 1 0 19:35 ? 00:00:00 /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg
  4. 或者
  5. [root@node1 ~]# service haproxy start
  6. Starting haproxy (via systemctl): [ 确定 ]
  7. [root@node1 ~]# ps -ef |grep haproxy |grep -v grep
  8. haproxy 4383 1 0 15:53 ? 00:00:00 /usr/sbin/haproxy -D -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid

haproxy参数说明

  1. -v 显示版本;
  2. -vv 显示已知的构建选项。
  3. -f 指定配置文件启动;
  4. -p 指定pid文件;
  5. -d 进入调试模式;
  6. -db 仅禁用后台模式。
  7. -dM [<byte>] 使用<byte>中毒内存(默认为0x50
  8. -V 进入详细模式(禁用安静模式)
  9. -D 去守护进程;
  10. -C 在加载文件之前更改为<dir>。
  11. -q quiet mode:不显示消息
  12. -c check mode:只检查配置文件并退出
  13. -n 设置最大连接数(2000
  14. -m 限制可用内存量(以MB为单位)
  15. -N 设置默认的每代理最大连接数(2000
  16. -L 设置本地对等名称(默认为hostname
  17. -p 将所有子项的pid写入此文件
  18. -de 即使在可用时也禁用epoll()用法
  19. -dp 即使在可用时也禁用poll()用法
  20. -dS 禁用拼接使用(在旧内核上断开)
  21. -dG 禁用getaddrinfo()用法
  22. -dV 在服务器端禁用SSL验证
  23. -sf/-st [pid]* 完成/终止旧的pid。必须是最后的论点。