HAProxy 入门使用、安装

HAProxy 是一个提供高可用、负载均衡,以及基于TCP和HTTP的代理程序。

HAProxy实现了一种事件驱动, 单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制 、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接

环境

centos 7.0 3.10.0-514.el7.x86_64

haproxy 1.7.9

haproxy 编译依赖:gcc、make、autoconf、openssl

编译安装

编译依赖安装

  1. yum install gcc pcre pcre-devel openssl openssl-devel -y  

编译安装

# PREFIX参数指定安装的目录  

  1. make TARGET=linux2628 PREFIX=/usr/local/haproxy  
  2. make install PREFIX=/usr/local/haproxy  

安装完成后检查版本

/usr/local/haproxy/sbin/haproxy -v  

配置

创建软连接,因为haproxy.init 脚本默认会到/usr/sbin目录下找haproxy

  1. ln -s /usr/local/haproxy/sbin/haproxy /usr/sbin/haproxy  

进入编译的目录下的example目录,将haproxy.init文件复制到/etc/init.d/

  1. cp haproxy.init /etc/init.d/haproxy  

在赋予/etc/init.d/haproxy 755权限

  1. chmod 755 haproxy  

创建配置文件

在/etc/下创建haproxy目录

  1. mkdir /etc/harpoxy  

在配置目录下创建文件,haproxy.cfg

配置内容:

  1.         #全局配置  
  2.     global  
  3.         #设置日志  
  4.         log 127.0.0.1 local3 info  
  5.         chroot /usr/local/haproxy  
  6.         #用户与用户组  
  7.         user haproxy  
  8.         group haproxy  
  9.         #守护进程启动  
  10.         daemon  
  11.         #最大连接数  
  12.         maxconn 4000  
  13.   
  14.     #默认配置  
  15.     defaults  
  16.         log global  
  17.         mode http  
  18.         option httplog  
  19.         option dontlognull  
  20.         timeout connect 5000  
  21.         timeout client 50000  
  22.         timeout server 50000  
  23.   
  24.     #前端配置,http_front名称可自定义  
  25.     frontend http_front  
  26.         # 发起http请求道80端口,会被转发到设置的ip及端口  
  27.         bind *:80  
  28.         #haproxy的状态管理页面,通过/haproxy?stats来访问  
  29.         stats uri /haproxy?stats  
  30.         default_backend http_back  
  31.   
  32.     #后端配置,http_back名称可自定义  
  33.     backend http_back  
  34.         #负载均衡方式  
  35.         #source 根据请求源IP  
  36.         #static-rr 根据权重  
  37.         #leastconn 最少连接者先处理  
  38.         #uri 根据请求的uri  
  39.         #url_param 根据请求的url参数  
  40.         #rdp-cookie 据据cookie(name)来锁定并哈希每一次请求  
  41.         #hdr(name) 根据HTTP请求头来锁定每一次HTTP请求  
  42.         #roundrobin 轮询方式  
  43.         balance roundrobin  
  44.         #设置健康检查页面  
  45.         option httpchk GET /index.html  
  46.         #传递客户端真实IP  
  47.         option forwardfor header X-Forwarded-For  
  48.         # inter 2000 健康检查时间间隔2秒  
  49.         # rise 3 检测多少次才认为是正常的  
  50.         # fall 3 失败多少次才认为是不可用的  
  51.         # weight 30 权重  
  52.         # 需要转发的ip及端口  
  53.         server node1 192.168.179.131:8081 check inter 2000 rise 3 fall 3 weight 30  
  54.         server node2 192.168.179.131:8082 check inter 2000 rise 3 fall 3 weight 30  

配置haproxy日志,haproxy默认是不记录日志,需要借助rsyslog来记录

方法一:直接在/etc/rsyslog.conf中配置

  1. vim /etc/rsyslog.conf  

取消注释#
$ModLoad imudp
$UDPServerRun 514
添加
local3.* /var/log/haproxy.log
重启rsyslog
systemctl restart rsyslog

这样配置会haproxy的日志还会记录到/var/log/messages中

因此需要在*.info;mail.none;authpriv.none;cron.none后面追加local3.none

重启rsyslog

方法二:在/etc/rsyslog.d/下创建日志配置

从/etc/rsyslog.conf中的如下配置,可以看出rsyslog会读取/etc/rsyslog.d/目录下的所有以.conf结尾的配置文件

# Include all config files in /etc/rsyslog.d/

$IncludeConfig /etc/rsyslog.d/*.conf

因此在/etc/rsyslog.d/下创建

haproxy.conf配置

  1. #配置haproxy的rsyslog日志  
  2. $ModLoad imudp  
  3. $UDPServerRun 514  
  4.   
  5. local3.* /var/log/haproxy.log  

为了不需要将日志写入到/var/log/messages中,还需要和方法一种配置一样在/etc/rsyslog.conf中

*.info;mail.none;authpriv.none;cron.none后面追加local3.none

重启rsyslog即可

启动服务

注意如果系统开启了防火墙需要打开对应的端口

第一次启动haproxy先使用

service命令,以后就可以使用systemctl命令来操作

service haproxy start

systemctl start haproxy

猜你喜欢

转载自my.oschina.net/u/3803405/blog/1820688