HAProxy

作者: Alexander_Zz | 来源:发表于2019-03-20 19:42 被阅读0次

负载均衡

  • 软件负载
    1.四层负载

LVS (Linux Virtual Server)
HAProxy (High Availability Proxy)
Nginx
...

2.七层负载

HAProxy
Nginx
...

  • 硬件负载

F5
Netscaler
...


应用场景

  • 四层

Redis、MySQL、RabbitMQ、Memcache 等

  • 七层

Nginx、Tomcat、Apache、PHP、图片、动静分离、API 等


HAProxy 功能

  • HAProxy 是 TCP / HTTP 反向代理服务器,尤其适合于高可用性高并发环境

1.可以针对 HTTP 请求添加 cookie,进行路由后端服务器
2.可平衡负载至后端服务器,并支持持久连接
3.支持基于 cookie 进行调度
4.支持所有主服务器故障切换至备用服务器
5.支持专用端口实现监控服务
6.支持不影响现有连接情况下停止接受新连接请求
7.可以在双向添加,修改或删除 HTTP 报文首部
7.支持基于 pattern 实现连接请求的访问控制
8.通过特定的 URI 为授权用户提供详细的状态信息

  • 历史版本更新功能:1.4 1.5 1.6 1.7 1.8 1.9 2.0-dev

HAProxy 安装

  • CentOS 基于 yum 安装
~]# yum install -y haproxy
  • Ubuntu 安装
apt-get install haproxy
  • 编译安装
~]# yum install gcc gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel systemd-devel net-tools zlib-devel 
~]# tar xvf haproxy-1.8.16.tar.gz 
~]# cd haproxy-1.8.16
~]# make ARCH=x86_64 TARGET=linux2628 USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 USE_SYSTEMD=1 USE_CPU_AFFINITY=1 PREFIX=/usr/local/haproxy
~]# make install PREDIX=/usr/local/haproxy
~]# cp /usr/local/haproxy/sbin/haproxy /usr/sbin/
  • 创建启动脚本
~]# vim /usr/lib/systemd/system/haproxy.service
[Unit]
Description=HAProxy Load Balancer
After=syslog.target.network.target

[Service]
ExecStartPre=/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -c -p
ExecStart=/usr/sbin/haproxy -Ws -f /etc/haproxu/haproxy.cfg -p /run/haproxy.pid
ExecReload=/bin/kill -USR2 $MAINPID

[Install]
WanteBy=multi-user.target
  • 创建目录符用户
~]# mkdir /etc/haproxy
~]# useradd haproxy -s /sbin/nologin
~]# mkdir /var/lib/haproxy
~]# chown -R haproxy.haproxy /var/lib/haproxy
~]# systemctl restart haproxy

haproxy.cfg 文件中定义了 chroot、pidfile、user、group 等参数,如果系统没有相应的资源会导致 haproxy 无法启动,具体参考日志文件 /var/log/messages

相关文章

网友评论

    本文标题:HAProxy

    本文链接:https://www.haomeiwen.com/subject/mtpamqtx.html