安装haproxy

1:RPM包安装
yum install -y haproxy
 
2:编译安装
http://www.haproxy.org/#down
 
例如安装1.7.9版本
http://www.haproxy.org/download/1.7/src/haproxy-1.7.9.tar.gz
编译参数自行解决,网上一大堆
  • 配置文件介绍(主配置文件/etc/haproxy/haproxy.cfg)只要这三段配置ok了,那么haproxy的七层负载均衡就搞定了
1:全局指令配置段
 
2:统计页面配置段
 
3:反向代理配置段
(1)定义静态后端主机
(2)定义动态后端主机
(3)定义前端调度器
 
 
  • haproxy配置文件实例(带读写分离功能)
# 全局配置段
global
# 指定日志记录路径,这个local2是需要在/etc/rsyslog.conf文件中指定的,指定了日志存储路径之后,需要重启rsyslog服务哦
log 127.0.0.1 local2
# 指定haproxy的运行环境
chroot /var/lib/haproxy
# 指定进程的pid
pidfile /var/run/haproxy.pid
# 指定单个进程的最大并发连接数
maxconn 4000
# 指定允许haproxy的用户
user haproxy
# 指定允许haproxy的组
group haproxy
# 指定haproxy以守护进程模式运行
daemon
# 设置后台运行2个haproxy进程,但是后台运行了3个进程
nbproc 2 # 指定Unix socket通信(基本没用过)
# stats socket /var/lib/haproxy/stats # 这里是默认的选项,如何在listen段,backend段,frontend段中将这些选项按需求重新制定
defaults
# 指定默认的模式
mode http
# 指定日志信息使用全局指定的日志存储路径,全局日志是存储在rsyslog服务中
log global
# 将log日志记录到rsyslog日志服务器中,指定日志级别为notice级别
log 192.168.23.10 local10 notice
# 日志格式可以不指定,有其默认的值
#log-format %T\ %t\ Some\ Text
# 指定压缩类型
compression algo gzip
# 指定需要压缩的资源类型
compression type text/html text/plain
option httplog
option dontlognull
option http-server-close
# 在后端服务器中可以记录客户端的源IP地址,在日志中加上%{X-Forwarded-For}i
option forwardfor except 127.0.0.1/8
# 如果后端服务器不提供服务,那么将会重新di
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
# 指定接受10000个并发
maxconn 10000 # haproxy统计页面配置段
listen stats
# 指定统计页面监听的端口
bind *:33559
# 指定统计页面运行的模式
mode http
# 指定开启统计页面功能
stats enable
# 如果不设置URI,默认是/haproxy?stats
stats uri /admin
# 指定登入是提示信息,\表示转义空白字符
stats realm HAProxy\ statistics
# 指定用户名和密码
stats auth uplooking:123456
# 指定统计页面自动刷新的时长
stats refresh 20
# 如果用户认证成功,统计页面可以被访问
stats admin if TRUE
#隐藏统计页面上HAProxy的版本信息
stats hide-version # 指定后端php动态资源主机组,后端的动态资源不做缓存,直接将请求反代值后端的app servers中
backend phpservers_backend # 这里使用了cookie粘性机制,当客户端没有被设置cookie值的时候,通过轮询调度到app servers主机上
balance roundrobin # 指定我们需要插入的cookie的key为PHP,使用的是insert方法,indirect表示如何会话已经有cookie值了,将不会再次发送cookie到客户端,nocache表示如果客户端和haproxy之间有代理,那么指定nocache将不会将所有的请求都发往一台服务器, 也可以认为是不缓存的意思
cookie PHP insert indirect nocache # server后面的cookie参数是给当前server指定cookie值,使得客户端请求报文中会夹带这个cookie的值,当报文发送到haproxy的时候,haproxy会根据cookie的值判断将报文调度到哪台后端服务器,这样就使得同一个客户端的请求,发往同一台后端服务器
server phpserver1 192.168.23.23:8000 check weight 1 cookie phpserver1 maxconn 3000 maxqueue 500
server phpserver2 192.168.23.24:8000 check weight 2 cookie phpserver2 maxconn 6000 maxqueue 500 # 指定后端varnish静态资源缓存主机组
backend varnish_backend # 将客户端请求的URI做哈希计算,使得相同的URI的请求始终发往后端的同一台缓存服务器,基于URL做哈希计算,使得varnish缓存的命中率提高,uri算法适用于后端为vanish这样的缓存服务器
balance uri # 使用的的hash类型是一致性哈希算法
hash-type consistent # 使用http协议做健康状态检查,默认是tcp协议
option httpchk
server varnish_server1 192.168.23.17:7000 check maxconn 5000
server varnish_server2 192.168.23.18:7000 check maxconn 5000
server varnish_server3 192.168.23.19:7000 check maxconn 10000 backup # 指定当请求到达的时候,如果是静态资源的请求,将请求调度到varnish主机组,默认是发送给后端web动态资源主机组
# 相当于Nginx中的server的listen指令,frontend 配置段用于监听用户请求,
frontend myservers_frontend
bind *:80
# 设置一个访问控制规则,只要请求路径为静态资源的都会被匹配到,并且发往varnish主机组
acl varnish_page path_beg -i /static /images /javascript /stylesheets
acl varnish_page path_end -i .jpg .gif .png .jpeg .css .js .html .txt .htm .ico
use_backend varnish_backend if varnish_page
# 没有被匹配到的请求全部发往phpservers_backend服务器
default_backend phpservers_backend
  • 检查配置文件是否错误的命令
haproxy -c -f /etc/haproxy/haproxy.cfg
 
 
 
 
在网页中输入 172.16.19.5:335599/admin   
 

haproxy入门 (作用: 高可用性,负载平衡和用于TCP和基于http的应用程序的代理)的更多相关文章

  1. .NET开发框架(八)-服务器集群之网络负载平衡演示(视频)

    (有声视频-服务器集群之负载平衡-NLB演示) 观看NLB视频的童鞋,都会继续观看IIS的负载平衡教程,点击>> 本文以[图文+视频],讲解Windows服务器集群的网络负载平衡NLB的作 ...

  2. Microsoft Azure 负载平衡服务

     Microsoft Azure 为在其中托管的虚拟机(IaaS) 和云服务(PaaS) 提供负载平衡服务.负载平衡支持应用程序伸缩,并且提供应用程序故障恢复以及其他优势. 可以通过以下方式访问负 ...

  3. Windows Server 2008 R2 负载平衡入门篇

    一.简单介绍负载均衡 负载均衡也称负载共享,它是指负载均衡是指通过对系统负载情况进行动态调整,把负荷分摊到多个操作节点上执行,以减少系统中因各个节点负载不均衡所造成的影响,从而提高系统的工作效率.在常 ...

  4. Keepalived+HAProxy 搭建高可用负载均衡

    转载自:https://mp.weixin.qq.com/s/VebiWftaRa26x1aA21Jqww 1. 概述 软件负载均衡技术是指可以为多个后端服务器节点提供前端IP流量分发调度服务的软件技 ...

  5. 使用nginx负载平衡

    1. 介绍 在许多应用中,负载平衡是一种常用的技术来优化利用资源最大化吞吐量,减少等待时间,并确保容错. 可以使用nginx的作为一种非常高效的HTTP负载平衡器,将流量分配到多个应用服务器上提高性能 ...

  6. lvs(+keepalived)、haproxy(+heartbeat)、nginx 负载均衡的比较分析

    目前使用比较多的就是标题中提到的这两者,其实lvs和haproxy都是实现的负载均衡的作用,keepalived和heartbeat都是提高高可用性的,避免单点故障.那么他们为什么这么搭配,而又有什么 ...

  7. Keepalived+HAproxy实现高可用负载均衡

    总概:       Keepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层.第4层和第5层交换.Keepalived的作用是检测web服务器的状态, ...

  8. haproxy高可用、负载均衡集群

    HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.根据官方数据,其最高极限支持10G的并发.另外其支持从4层至7层的网络交换, ...

  9. Windows Server 2008R2 配置网络负载平衡(NLB)

    目录 配置环境 安装 安装网络负载平衡 安装Web服务器 IIS 配置 测试 其它 配置环境 VMware:(版本10.0.01) 主集群IP:192.168.220.102 VM1:192.168. ...

随机推荐

  1. MQTT入门1 -- mosquitto 安装

    原文链接:https://www.cnblogs.com/NickQ/p/9247638.html MQTT入门1 -- mosquitto 安装 简介: MQTT(Message Queuing T ...

  2. python3网络爬虫系统学习:第一讲 基本库urllib

    在python3中爬虫常用基本库为urllib以及requests 本文主要描述urllib的相关内容 urllib包含四个模块:requests——模拟发送请求 error——异常处理模块 pars ...

  3. Go语言中结构体的使用-第2部分OOP

    1 概述 结构体的基本语法请参见:Go语言中结构体的使用-第1部分结构体.结构体除了是一个复合数据之外,还用来做面向对象编程.Go 语言使用结构体和结构体成员来描述真实世界的实体和实体对应的各种属性. ...

  4. 探秘GO语言《比较C#与GO的性能--XML序列化》

    今天对GO和NET的XML字符串序列化成对象列表做了一个性能比较,得出一些结论. GO的代码: package main import ( "encoding/xml" " ...

  5. js scroll nav

    http://jsfiddle.net/cse_tushar/Dxtyu/141/http://ironsummitmedia.github.io/startbootstrap-scrolling-n ...

  6. SSM-CRUD入门项目——查询

    查询 1.基础查询 分析:访问项目主页 index.jsp 时应该跳转到列表页 我们可以在index.jsp发出查询员工列表请求,来到 list.jsp 使用插件 pageHelper 完成分页功能— ...

  7. 20155308&20155316 2017-2018-1 《信息安全系统设计基础》实验三

    20155308&20155316 2017-2018-1 <信息安全系统设计基础>实验三 并发程序-1 学习使用Linux命令wc(1) 基于Linux Socket程序设计实现 ...

  8. I/O: std::ios_base::openmode

    I/O: std::ios_base::openmode std::ios_base::openmode std::ios_base::in:  打开文件进行读操作,即读取文件中的数据 如果指定路径中 ...

  9. rpmforge

    Could not retrieve mirrorlist http://mirrorlist.repoforge.org/el6/mirrors-rpmforge error was : PYCUR ...

  10. 如何写一个简单的HTTP服务器(重做版)

    最近几天用C++重新写了之前的HTTP服务器,对以前的代码进行改进.新的HTTP服务器采用Reactor模式,有多个线程并且每个线程有一个EventLoop,主程序将任务分发到每个线程,其中采用的是轮 ...