CentOS HAProxy安装与配置详解
HAProxy简介
HAProxy是一款使用C语言编写的自由及开放源代码软件,主要用于提供高可用性、负载均衡以及基于TCP和HTTP的应用程序代理功能,它特别适用于那些负载特大的Web站点,这些站点通常需要会话保持或七层处理,HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接,并且其运行模式使得它可以很简单安全的整合进现有的架构中,同时可以保护Web服务器不被暴露到网络上。
安装HAProxy
1. 准备工作
在安装HAProxy之前,请确保系统环境满足以下要求:
操作系统:支持多种Linux发行版,如CentOS、Ubuntu等。
必要的依赖包:如make、gcc、pcredevel、bzip2devel、openssldevel等。
关闭防火墙和SELinux(或设置为Permissive模式):以避免安全策略干扰HAProxy的正常运行。
2. 安装步骤(以CentOS 7为例)
(1)安装必要的依赖包
sudo yum y install make gcc pcredevel bzip2devel openssldevel
(2)下载并编译安装HAProxy
可以从HAProxy的官方网站下载最新版本的源码包,或者使用包管理器直接安装(如果可用),以下是通过源码包安装的方法:
wget http://www.haproxy.org/download/1.7/src/haproxy1.7.2.tar.gz tar xzf haproxy1.7.2.tar.gz cd haproxy1.7.2 make TARGET=linux2628 USE_OPENSSL=1 USE_PCRE=1 USE_SYSTEMD=1 sudo make install PREFIX=/home/ha/haproxy
注意:TARGET根据当前操作系统内核版本指定,USE_OPENSSL、USE_PCRE、USE_SYSTEMD等选项根据实际需求和系统环境进行选择,PREFIX为指定的安装路径。
(3)创建软连接(可选)
为了方便使用,可以将HAProxy的可执行文件添加到系统的PATH中:
sudo ln s /home/ha/haproxy/sbin/* /usr/sbin/
配置HAProxy
1. 配置文件结构
HAProxy的配置文件通常位于/etc/haproxy/
目录下,文件名为haproxy.cfg
,配置文件由多个部分组成,包括global、defaults、frontend、backend和listen等。
global:用于设置全局配置参数,属于进程级的配置,通常和操作系统配置相关。
defaults:默认参数的配置部分,在此部分设置的参数值,默认会自动被引用到下面的frontend、backend和listen部分中。
frontend:用于设置接收用户请求的前端虚拟节点,frontend可以根据ACL规则直接指定要使用的后端backend。
backend:用于设置集群后端服务集群的配置,也就是用来添加一组真实服务器,以处理前端用户的请求。
listen:此部分是frontend和backend部分的结合体,在HAProxy 1.3版本之前,所有的配置选项都在这个部分中设置,为了保持兼容性,新的版本仍然保留了listen组件的配置方式。
2. 示例配置
以下是一个基本的HAProxy配置文件示例,用于配置RabbitMQ集群的负载均衡:
global log 127.0.0.1 local0 info maxconn 10240 daemon defaults log global mode http timeout connect 5000 timeout client 5000 timeout server 5000 timeout check 2000 listen http_front #haproxy的客户页面 bind 192.168.72.128:8888 mode http option httplog stats uri /haproxy stats auth admin:123456 stats refresh 5s stats enable listen haproxy #负载均衡的名字 bind 0.0.0.0:5666 #对外提供的虚拟的端口 option tcplog mode tcp balance roundrobin server rabbit1 192.168.72.128:5672 check inter 5000 rise 2 fall 2 server rabbit2 192.168.72.128:5673 check inter 5000 rise 2 fall 2 server rabbit3 192.168.72.128:5674 check inter 5000 rise 2 fall 2
3. 启动与验证
将HAProxy注册为系统服务,并启动:
vi /etc/init.d/haproxy
添加以下内容:
#!/bin/bash chkconfig: 2345 80 90 description: Haproxy is an Open Source load balancing solution that offers high \ performance, high availability, and scalability. processname: haproxy config: /etc/haproxy/haproxy.cfg configtest Shell command to test haproxy configuration syntax prereq: rpm q perl bindutils procpsysvinit sysvrcconf case "$1" in start) echo n "Starting haproxy: " /home/ha/haproxy/sbin/haproxy f /home/ha/haproxy/conf/haproxy.cfg p /var/run/haproxy.pid ;; stop) echo n "Stopping haproxy: " killcat /var/run/haproxy.pid
;; restart) echo n "Restarting haproxy: " killcat /var/run/haproxy.pid
/home/ha/haproxy/sbin/haproxy f /home/ha/haproxy/conf/haproxy.cfg p /var/run/haproxy.pid ;; status) echo n "Checking haproxy status: " ps aux | grep haproxy | grep v grep > /dev/null if [ $? eq 0 ]; then echo "running" else echo "stopped" fi ;; *) echo "Usage: $0 {start|stop|restart|status}" exit 1 esac exit 0
赋予执行权限并启动服务:
chmod +x /etc/init.d/haproxy service haproxy start
验证是否启动成功:
lsof i:8888
如果看到HAProxy正在监听指定的端口,则说明启动成功。
FAQs
Q1: 如何在CentOS上更改HAProxy的最大连接数?
A1: 要更改HAProxy的最大连接数,可以在配置文件的global
部分设置maxconn
参数,要将最大连接数设置为20480,可以在haproxy.cfg
文件中添加或修改以下行:
maxconn 20480
然后重启HAProxy服务使配置生效。
Q2: 如果HAProxy配置文件有误,如何检查配置文件语法是否正确?
A2: 可以使用haproxy f /path/to/your/haproxy.cfg c
命令来检查HAProxy配置文件的语法是否正确,该命令不会实际启动HAProxy,只是检查配置文件是否有语法错误,如果有错误,它会输出错误信息;如果没有错误,它会输出“Configuration file is valid”。