HAProxy安装文档

HAProxy安装文档

一、环境说明

系统环境:CentOS Linux release 7.2.1511 (Core)

系统内核:3.10.0-327.el7.x86_64

软件:haproxy-1.5.8.tar.gz

安装方式:源码编译安装

安装位置:/usr/local/haproxy

官方文档: http://cbonte.github.io/haproxy-dconv/1.5/configuration.html

二、安装配置

1.创建用户

$ sudo useradd -M -s /sbin/nologin www

2.安装

$ sudo wget http://www.haproxy.org/download/1.5/src/haproxy-1.5.8.tar.gz
$ sudo tar zxf haproxy-1.5.8.tar.gz -C /usr/local/
$ sudo cd /usr/local/haproxy-1.5.8/
$ sudo make TARGET=linux2628 ARCH=X86_64 PREFIX=/usr/local/haproxy
$ sudo make install PREFIX=/usr/local/haproxy

执行过程:

install -d /usr/local/haproxy/sbin
install haproxy /usr/local/haproxy/sbin
install haproxy-systemd-wrapper /usr/local/haproxy/sbin
install -d /usr/local/haproxy/share/man/man1
install -m 644 doc/haproxy.1 /usr/local/haproxy/share/man/man1
install -d /usr/local/haproxy/doc/haproxy
for x in configuration architecture haproxy-en haproxy-fr; do \
install -m 644 doc/$x.txt /usr/local/haproxy/doc/haproxy ; \
done And on a recent Linux >= 2.6.28 with SSL and ZLIB support : $ make TARGET=linux2628 USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1

3.创建配置文件和启动文件

$ sudo mkdir -pv /usr/local/haproxy/conf
$ sudo cp /usr/local/haproxy-1.5.8/examples/haproxy.cfg /usr/local/haproxy/conf/
$ sudo cp /usr/local/haproxy-1.5.8/examples/haproxy.init /etc/init.d/haproxy
$ sudo sed -i 's#etc/$BASENAME#usr/local/haproxy/conf#g' /etc/init.d/haproxy
$ sudo chmod +x /etc/init.d/haproxy
$ sudo ln -sv /usr/local/haproxy/sbin/haproxy /usr/sbin/

三、编辑配置文件

vim  /usr/local/haproxy/conf/haproxy.cfg
global
log 127.0.0.1 local0
maxconn 65535 ##最大连接数
user www
group www
daemon
nbproc 1
pidfile /var/run/haproxy.pid
defaults
mode http
log global
option httpclose
option httplog
option dontlognull
# option http-server-close
# option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 65535 listen rabbitmq_cluster 0.0.0.0:56720
mode tcp
balance roundrobin
#option httpclose
option tcplog
option clitcpka
server rqslave1 tst-service-test1:5672 check inter 2000 rise 2 fall 3
server rqslave2 tst-service-test2:5672 check inter 2000 rise 2 fall 3
##服务器定义(check指健康状况检查,inter 2000指检测频率;rise 2指从离线状态转换至正常状态需要成功检查的次数;fall 3指失败3次即认为服务器不可用) frontend mq.test.dev
mode http
option httplog
option http-keep-alive
bind 0.0.0.0:80
default_backend mq-backend
backend mq-backend
server node1 192.168.199.182:15672 check inter 2000 rise 2 fall 3
server node2 192.168.199.183:15672 check inter 2000 rise 2 fall 3
server node3 192.168.199.200:15672 check inter 2000 rise 2 fall 3 listen admin_stats ##监控页面设置
mode http ##http的7层模式
bind 0.0.0.0:1080 #监听端口
option httplog #采用http日志格式
stats refresh 30s #统计页面自动刷新时间
stats uri /stats #统计页面url
stats realm Haproxy Manager #统计页面密码框上提示文本
stats auth admin:admin #统计页面用户名和密码设置
#stats hide-version #隐藏统计页面上HAProxy的版本信息

四、启动HAproxy

$ sudo /etc/init.d/haproxy start
或者
$ sudo systemctl start haproxy.service
或者
$ sudo /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfg

登录状态页面:

在浏览器输入 http:IP:1080/stats

HAProxy安装文档

五、配置日志

haproxy的日志是结合系统的rsyslog程序来生成的。

1.配置rsyslog

修改文件:/etc/rsyslog.conf

增加一行:

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

取消下面两行的注释,开启514端口

 $ModLoad imudp
$UDPServerRun 514

2.创建haprxoy日志配置

配置文件为:/etc/rsyslog.d/haproxy.conf

# vim  /etc/rsyslog.d/haproxy.conf
local0.* /var/log/haproxy/haproxy.log

3.开启远程日志

配置文件为:etc/sysconfig/rsyslog

# vim etc/sysconfig/rsyslog
把 SYSLOGD_OPTIONS="" 修改为: SYSLOGD_OPTIONS="-c 2 -m 0 -r -x"

解释说明:

-r:打开接受外来日志消息的功能,其监控514 UDP端口;
-x:关闭自动解析对方日志服务器的FQDN信息,这能避免DNS不完整所带来的麻烦;
-m:修改syslog的内部mark消息写入间隔时间(0为关闭),例如240为每隔240分钟写入一次"--MARK--"信息;
-h:默认情况下,syslog不会发送从远端接受过来的消息到其他主机,而使用该选项,则把该开关打开

4.haproxy开启日志配置

最简单的就是这个了,

当然也可以配置在global,frontend,listen 分别记录各自的日志

日志级别分为:emerg 、alert 、crit 、err、 warning 、notice 、info 、debug

global
log 127.0.0.1:514 local0 err

5.重启rsyslog 和 haproxy

# systemctl restart rsyslog.service
# systemctl restart haproxy.service

6.举例

查看haproxy关于日志的配置

global
log 127.0.0.1:514 local0 notice listen rabbitmq_cluster
mode tcp
option tcplog
log 127.0.0.1:514 local1 info frontend mq.xxx.dev
mode http
option httplog
log 127.0.0.1:514 local2 info

查看/etc/rsyslog.d/haproxy.conf

$ sudo  cat /etc/rsyslog.d/haproxy.conf

#Haproxy
local0.* /var/log/haproxy/haproxy.log
local1.* /var/log/haproxy/haproxy.mq_cluster.log
local2.* /var/log/haproxy/haproxy.mq_admin.log
#end /etc/rsyslog.conf

这样配置就会生成3个日志文

haproxy.loghaproxy.mq_cluster.loghaproxy.mq_admin.log 前提是有日志生成才行。

六、遇到问题

问题1:

localhost haproxy[14616]: /etc/rc.d/init.d/haproxy: 第 26 行:[: =: 期待一元表达式

HAProxy安装文档

解决方法:

方法一:

把原句子修改为:

[[ ${NETWORKING} = "no" ]] && exit 0

方法二:

把原句子修改为:


[ "${NETWORKING}"x = "no"x ] && exit 0

参考:

http://blog.csdn.net/goodlixueyong/article/details/6564591

问题2:

src/ssl_sock.c:41:25: fatal error: openssl/ssl.h: No such file or directory

HAProxy安装文档

解决方法:

$ sudo yum install openssl-devel

参考文档

http://www.haproxy.org/

http://www.haproxy.org/download/1.8/doc/configuration.txt

http://cbonte.github.io/haproxy-dconv/1.8/configuration.html

下载地址

http://www.haproxy.org/download/

转载请注明出处,运维特工 www.unixfbi.com

上一篇:oracle SQLPLUS 常用set设置


下一篇:https://www.cnblogs.com/yudanqu/p/9467803.html