一、           HAProxy介绍

HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。根据官方数据,其最高极限支持10G的并发。

HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中,同时可以保护你的web服务器不被暴露到网络上。

其支持从4层至7层的网络交换,即覆盖所有的TCP协议。就是说,Haproxy 甚至还支持 Mysql 的均衡负载。

如果说在功能上,能以proxy反向代理方式实现 WEB均衡负载,这样的产品有很多。包括 Nginx,ApacheProxy,lighttpd,Cheroke 等。

但要明确一点的,Haproxy 并不是 Http 服务器。以上提到所有带反向代理均衡负载的产品,都清一色是 WEB 服务器。简单说,就是他们能自个儿提供静态(html,jpg,gif..)或动态(php,cgi..)文件的传输以及处理。而Haproxy 仅仅,而且专门是一款的用于均衡负载的应用代理。其自身并不能提供http服务。

二、            环境配置

操作系统:ubuntu14.04

服务器IP规划:

192.168.100.115 (haproxy)------负载均衡

www.test.com->192.168.100.191

default ->192.168.100.115:8090

三、           HAProxy安装

#apt-get update

#apt-get install haproxy

安装完成的目录在/etc/haproxy

四、           HAProxy配置

  1. 创建配置文件

#vi haproxy.cfg

2.  在创建的haproxy.cfg文件中加入如下内容

global

log 127.0.0.1 local0 info #[err warning info debug]

#local0 是日志设备,必须为如下24种标准syslog设备的一种:

#kern user mail daemon auth syslog lpr news uucp cron auth2 ftp ntp audit alert cron2

local0 local1 local2 local3 local4 local5 local6 local7

#在/etc/syslog.conf文件中定义的是local0,这里也是用local0

chroot      /var/lib/haproxy

maxconn 4096

user haproxy

group haproxy

daemon

nbproc 1

pidfile /var/run/haproxy.pid

defaults

log global

mode    http

retries 3

option  httplog

option  redispatch

option  forwardfor

option abortonclose

maxconn 2000

contimeout 5000

clitimeout 30000

srvtimeout 30000

timeout check 2000

#一些参数值为时间,比如说timeout。时间值通常单位为毫秒(ms),但是也可以通过加#后缀,来使用其他的单位。

#- us : microseconds. 1 microsecond = 1/1000000 second

#- ms : milliseconds. 1 millisecond = 1/1000 second. This is the default.

#- s : seconds. 1s = 1000ms

#- m : minutes. 1m = 60s = 60000ms

#- h : hours. 1h = 60m = 3600s = 3600000ms

#- d : days. 1d = 24h = 1440m = 86400s = 86400000ms

errorfile 400 /etc/haproxy/errors/400.http

errorfile 403 /etc/haproxy/errors/403.http

errorfile 408 /etc/haproxy/errors/408.http

errorfile 500 /etc/haproxy/errors/500.http

errorfile 502 /etc/haproxy/errors/502.http

errorfile 503 /etc/haproxy/errors/503.http

errorfile 504 /etc/haproxy/errors/504.http

listen admin_stats

bind 0.0.0.0:1080

mode http

stats uri /admin?stats

stats realm Gemini\ Haproxy

stats auth admin:admin

stats auth admin1:admin1

stats refresh 5s

stats hide-version

frontend web_in

mode http

maxconn 4096

bind 0.0.0.0:80

acl is_a hdr_beg(host) -i www.test.com

use_backend a_server if is_a

default_backend default

backend a_server

mode http

balance roundrobin

cookie  SERVERID

stats   hide-version

option  httpclose

option redispatch

server app_1 192.168.100.191:80 cookie 1 check inter 1500 rise 3 fall 3 weight 1

server app_2 192.168.100.192:80 cookie 2 check inter 1500 rise 3 fall 3 weight 1

backend default

mode http

balance roundrobin

cookie  JSESSIONID prefix

stats   hide-version

option  httpclose

server app 192.168.100.115:8090 cookie 1 check inter 1500 rise 3 fall 3 weight 1

server app 192.168.100.116:8090 cookie 2 check inter 1500 rise 3 fall 3 weight 1

五、           安装rsyslog

#apt-get install rsyslog

安装完成之后,配置rsyslog

#vi /etc/rsyslog.d/haproxy.conf

加入以下内容:

$ModLoad imudp
$UDPServerRun 514
local0.* /var/log/haproxy.log

保存,重启rsyslogd.

六、            HAProxy运行

1. 启动服务:

# /usr/local/haproxy/sbin/haproxy -f/usr/local/haproxy/conf/haproxy.cfg

2. 重启服务:

#/usr/local/haproxy/sbin/haproxy -f/usr/local/haproxy/conf/haproxy.cfg -st `cat/usr/local/haproxy/logs/haproxy.pid`

3. 停止服务:

# killall haproxy

4.创建启动/停止脚本

为了方便以后启动或停止,所以编写一个启动脚本,如果你认为现在的启动脚本已经够方便了,这步可以省略

脚本下载地址

七、            HAProxy日志配置

1. HAProxy可以收集本机及其他后端服务器日志,但是需要在HAProxy和操作系统上作一些配置。

2. 使用root账户首先修改/etc/sysconfig/syslog文件,将SYSLOGD_OPTIONS="-m0”修改为SYSLOGD_OPTIONS="-m 0 -r -x",支持收集远程服务器日志。

3. 然后修改/etc/syslog.conf,增加如下语句:

local0.* /usr/local/haproxy/logs/haproxy.log

//haproxy.log地址代表了需要存储日志的地址,其中local0这个级别要和haproxy.cfg配置的log级别一样

4. 执行service syslog restart,重新启动系统日志服务

5. 更改日志文件用户

chown admin:admin /usr/local/haproxy/logs/haproxy.log

转载于:https://blog.51cto.com/showing/1842075

haproxy之安装与配置详解相关推荐

  1. keepalived介绍、安装及配置详解

    文章目录 keepalived简介 keeplived和LVS关系 VRRP工作原理 keepalived体系结构及工作原理 keepalived安装 keepalived配置详解 keepalive ...

  2. Nagios远程监控软件的安装与配置详解

    Nagios远程监控软件的安装与配置详解 作者:redhat_hu Nagios是一款功能强大的网络监视工具,它可以有效的监控windows.linux.unix主机状态以及路由器交换机的网络设置,打 ...

  3. Julia的安装与配置详解(包含在Ubuntu 18.04和Windows 10系统上Julia的安装)

    Julia的安装与配置详解((包含在Ubuntu 18.04和Windows 10系统上Julia的安装) Julia的安装 使用二进制文件安装Julia 在Ubuntu上安装Julia 在Windo ...

  4. gulp的安装和配置详解

    gulp的安装和配置详解 1.安装node.js 先下载一个node.js安装包. 下载完成后双击即可. 打开cmd,命令行输入node -v,回车输出nodejs版本号,表示安装成功. 命令行输入n ...

  5. node.js卸载、安装、配置详解

    node.js卸载.安装.配置详解 一. node.js卸载 二.下载安装 2.1 下载 2.2 安装 2.2.1 选择msi安装 2.2.2 选择zip安装 三.配置 3.1 环境变量配置 3.2 ...

  6. Gradle安装和配置详解

    Gradle安装和配置详解 gradle是基于Apache Ant和Apache Maven概念的项目自动化构建开源工具,也提供了很多第三方插件.在Java Web项目中通常会用到 java.war. ...

  7. Linux中Nginx安装与配置详解及常见问题

    3 Nginx安装 3.1 安装前的准备     1)准备 pcre-8.12.tar.gz.该文件为正则表达式库.让nginx支持rewrite需要安装这个库.     2) 准备 nginx-1. ...

  8. Tomcat安装及配置详解

    转载:http://www.ttlsa.com/tomcat/tomcat-install-and-configure/ 一,Tomcat简介 Tomcat 服务器是一个免费的开放源代码的Web 应用 ...

  9. 01 Redis安装、配置详解、数据备份与恢复

    缓存简介 简介 缓存是为了调节速度不一致的两个或者多个不同的物质的速度,在中间对速度访问较快的一方起到一个加速访问速度较慢的一方的作用,比如cpu的一级,二级缓存是为了保存cpu最近经常访问的数据,内 ...

  10. uWSGI的安装及配置详解

    uWSGI是一个Python Web服务器,它实现了WSGI协议.uwsgi.http等协议,常在部署Django或Flask开发的Python Web项目时使用,作为连接Nginx与应用程序之间的桥 ...

最新文章

  1. Lync 小技巧-24-PDF 加密文件-转-Word-操作手册
  2. ubuntu 安装deb_Ubuntu不完全小坑指南
  3. 1. 列维过程的混沌及可料表示(1)
  4. centos7.8中源码编译安装redis
  5. python3列表_Python3列表
  6. nessuss中文使用手册
  7. Navicat 连接Mysql 报错1251
  8. 怎么查看表用了那个序列_知识分享008:怎样在手机上用萤石云查看海康威视监控录像...
  9. Android 中的BroadCastReceiver【转】
  10. python中iskeydown什么函数_isKeyDown不能在Java中工作
  11. ubuntu11.04中nautilus(文件管理器)查看FTP乱码的解决办法
  12. 一点关于MD5计算的封装
  13. 在MyEclipse中使用javadoc导出API文档详解
  14. SQL SERVER 查找某个字符在字符串中出现的次数
  15. WAP的技术、运动和现状(转)
  16. 关于三段式状态机第三段是组合逻辑还是时序逻辑的问题?
  17. 前端加载shapefile数据
  18. Unity SRP初识笔记
  19. matlab 10为底指数,matlab指数函数
  20. OpenWrt TL-WR841N WAN口down问题

热门文章

  1. 键盘上所有键位的ascii值
  2. Bootstrap FileInput.js + springmvc uploadFile
  3. Ubuntu10.04下载并编译Android4.3源代码
  4. 发布一个平滑进度条控件
  5. Flask最强攻略 - 跟DragonFire学Flask - 第十六篇 Flask-Migrate
  6. C#之四十二 C# 读写文本文件乱码解决方案
  7. ibatis简例1-用ibator插件自动生成sqlmap
  8. math ceil函数python_Python3 ceil() 函数
  9. Kafka 设计与原理详解(一)
  10. Python数据分析(二): Numpy技巧 (3/4)