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.创建用户

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

2.安装

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

执行过程:

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

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

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

三、编辑配置文件

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

四、启动HAproxy

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

登录状态页面:

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

五、配置日志

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

1.配置rsyslog

修改文件:/etc/rsyslog.conf

增加一行:

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

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

  1. $ModLoad imudp
  2. $UDPServerRun 514

2.创建haprxoy日志配置

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

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

3.开启远程日志

配置文件为:etc/sysconfig/rsyslog

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

解释说明:

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

4.haproxy开启日志配置

最简单的就是这个了,

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

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

  1. global
  2. log 127.0.0.1:514 local0 err

5.重启rsyslog 和 haproxy

  1. # systemctl restart rsyslog.service
  2. # systemctl restart haproxy.service

6.举例

查看haproxy关于日志的配置

  1. global
  2. log 127.0.0.1:514 local0 notice
  3. listen rabbitmq_cluster
  4. mode tcp
  5. option tcplog
  6. log 127.0.0.1:514 local1 info
  7. frontend mq.xxx.dev
  8. mode http
  9. option httplog
  10. log 127.0.0.1:514 local2 info

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

  1. $ sudo cat /etc/rsyslog.d/haproxy.conf
  2. #Haproxy
  3. local0.* /var/log/haproxy/haproxy.log
  4. local1.* /var/log/haproxy/haproxy.mq_cluster.log
  5. local2.* /var/log/haproxy/haproxy.mq_admin.log
  6. #end /etc/rsyslog.conf

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

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

六、遇到问题

问题1:

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

解决方法:

方法一:

把原句子修改为:

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

方法二:

把原句子修改为:


  1. [ "${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

解决方法:

  1. $ 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

HAProxy安装文档的更多相关文章

  1. ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档

    ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档 2015-10-21 12:51 525人阅读 评论(0) 收藏 举报  分类: Oracle RA ...

  2. Oracle 11g 单实例安装文档

    这里介绍在Red Hat Enterprise Linux Server release 5.7 (Tikanga)下安装ORACLE 11.2.0.1.0的过程,本文仅仅是为了写这样安装指导文档而整 ...

  3. linkedin开源的kafka-monitor安装文档

    linkedin开源的kafka-monitor安装文档 linkedin 开源的kafka-monitor的安装使用可以参考官方的readme:流程介绍的已经比较清楚,但是还是有一些地方需要修正.让 ...

  4. _00024 尼娜抹微笑伊拉克_云计算ClouderaManager以及CHD5.1.0群集部署安装文档V1.0

    笔者博文:妳那伊抹微笑 itdog8 地址链接 : http://www.itdog8.com(个人链接) 博客地址:http://blog.csdn.net/u012185296 博文标题:_000 ...

  5. oracle database 12c R1 安装文档

    INSTALLORACLE DATABASE 12C 完整的安装文档下载地址: http://download.csdn.net/detail/royjj/5665869 OS:ORALCE LINU ...

  6. Oracle 12c RAC 静默安装文档

    参考文档: https://docs.oracle.com/en/database/oracle/oracle-database/12.2/cwlin/index.html https://docs. ...

  7. Oracle 12c RAC 安装文档

    参考文档: https://docs.oracle.com/en/database/oracle/oracle-database/12.2/cwlin/index.html https://docs. ...

  8. Azkaban使用安装文档

    Azkaban使用安装文档 Azkaban简介 Azkaban的是什么 Azkaban是由Linkedin公司推出的一个批量工作流任务调度器,用于在一个工作流内以一个特定的顺序运行一组工作和流程.Az ...

  9. Linux rhel7 下MySQL5.7.18详细安装文档

    Linux rhel7 下MySQL5.7.18详细安装文档 本文安装MySQL5.7使用的是vm虚拟机rhel7操作系统 ,ftp文件传输是FileZilla3.27,远程连接xssh5.0 1 登 ...

随机推荐

  1. 比较三个 CSS 预处理器:Sass、LESS 和 Stylus(上)

    前沿 : 第一次写不够成熟,可能描述有所错误,还请大家修改指正,我会对已完成的文章进行修改. 一.什么是CSS预处理器 CSS预处理器定义了一种新的语言,基本的思想是用一种专门的编程语言,开发者只需要 ...

  2. CGLIB 动态代理的实现

    详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp92  JDK实现动态代理需要实现类通过接口定义业务方法,对于没有接口的类 ...

  3. [置顶] 基于FPGA的VGA简易显存设计&NIOS ii软核接入

    项目简介 本项目基于Altera公司的Cyclone IV型芯片,利用NIOS II软核,2-port RAM与时序控制模块,实现64*48分辨率的显存(再大的显存板载资源m9k不够用) 实现效果如下 ...

  4. Linux Centos 6.9中SSH默认端口修改的坑

    关于Linux Centos6.5的SSH默认端口修改的博客有一大堆,我在这里就不啰嗦了,但是面对Centos 6.9,就会发现有一个巨坑: 修改iptables之后执行下面的命令后: # servi ...

  5. javascript this对象

    函数运行时,自动生成的一个内部对象,只能在函数内部使用 随着函数使用场合的不同,this的值也发生着改变,但是有一个总原则:this指的是调用函数的那个对象(核心) this对象的指向 一般情况下,我 ...

  6. 个人作业-2 必应词典安卓APP分析

    产品: 必应词典 安卓版 第一部分:调研,评测 1.对于这款app的第一印象就是界面不是很美观,页面排版十分混乱,有些功能比较鸡肋,功能也不是很丰富,不过这款app的ui设计相对简洁,让人容易上手,对 ...

  7. 201521123059 《Java程序设计》第三周学习总结

    1. 本周学习总结 2. 书面作业 1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; p ...

  8. 201521123108《Java程序设计》第1周学习总结

    本周学习总结 刚加入java的学习,我感觉很困难.但我觉得学习并不是一蹴而就.只要我多读,多看,多练,一定会取得进步.有空的时候把书本上的代码敲一敲.相信会有回报. 2.书面作业 1.为什么java程 ...

  9. OSGi-入门篇之生命周期层(03)

    前言 生命周期层在OSGi框架中属于模块层上面的一层,它的运作是建立在模块层的功能之上的.生命周期层一个主要的功能就是让你能够从外部管理应用或者建立能够自我管理的应用(或者两者的结合),并且给了应用本 ...

  10. 个人理解---在开发中何时加入日志记录功能[java]

    是这样的:俩个月前做的一个小功能,今天经理突然问我这个'清除复投记录'功能是不是我做的,我说是,很久以前了.他说昨天一个客户找过来了,后台把人家的复投记录清除掉了,不知道何时清除的,我记得当时做的时候 ...