HAproxy

Elastic Load Balancing in EC2 [closed]

早过忘川 提交于 2019-12-20 08:39:50
问题 Closed. This question is off-topic. It is not currently accepting answers. Want to improve this question? Update the question so it's on-topic for Stack Overflow. Closed 6 years ago . It's been on the cards for a while, but now that Amazon have released Elastic Load balancing (ELB), what are your thoughts on deploying this solution for a high-traffic web application? Should we replace HAProxy or consider ELB as a complimentary service in front of HAProxy? 回答1: I've been running an ELB instead

How do I set a dynamic variable in HAProxy?

跟風遠走 提交于 2019-12-20 03:10:21
问题 Is it possible to set a dynamic variable which will hold the content of HTTP header e.g. Host/X-Forwarded-Host and would be used later in ACLs? frontend web1 # ... set-var s1(Host) acl site1 hdr_end(host) -i %[s1] # ... use_backend %[s1] if site1 回答1: You have a mix of techniques here. You don't need variables at all to set ACLs based on the host address and select a backend using those ACLs. That would be something simple like: frontend web1 # ... acl site1 hdr(host) -i example.com acl site2

Haproxy搭建Web群集——实战篇

依然范特西╮ 提交于 2019-12-19 19:16:45
实验要求: 1.一台 Haproxy调度服务器,两台 Nginx 服务器,一台windows7作为客户端; 2.三台服务器为CentOS 7.3的64位系统; 3.所有主机网卡都设置成仅主机模式,绑定静态地址; 4.客户端可以通过访问调度服务器,访问到两台节点服务器,不需要访问真实服务器地址 主机 角色 IP地址 centos7-1 Haproxy服务器 192.168.1.10 centos7-2 Nginx服务器1 192.168.1.20 centos7-3 Nginx服务器2 192.168.1.30 win 7 windows7客户端 192.168.1.40 实验步骤: 1、搭建两台Nginx服务器 安装环境包及nginx [root@nginx1 mnt]# yum -y install \ gcc \ gcc-c++ \ zlib-devel \ pcre pcre-devel \ expat-devel [root@nginx1 mnt]# useradd -M -s /sbin/nologin nginx #建立管理用户 [root@nginx1 mnt]# tar zxvf nginx-1.12.0.tar.gz -C /opt/ [root@nginx1 nginx-1.12.0]# ./configure \ --prefix=/usr/local

haproxy配置详解

对着背影说爱祢 提交于 2019-12-17 23:31:50
一、HAProxy简介 1.HAProxy 是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。 2.HAProxy 实现了一种事件驱动、单一进程模型,此模型支持非常大的并发连接数。 3.HAProxy 支持全透明代理(已具备硬件防火墙的典型特点): 可以用客户端IP地址或者任何其他地址来连接后端服务器. 这个特性仅在Linux 2.4/2.6内核打了cttproxy补丁后才可以使用. 这个特性也使得为某特殊服务器处理部分流量同时又不修改服务器的地址成为可能。 二、HAProxy工作原理 HAProxy由前端(frontend)和后端(backend),前端和后端都可以有多个。也可以只有一个listen块来同时实现前端和后端。这里主要讲一下frontend和backend工作模式。 前端(frontend)区域可以根据HTTP请求的header信息来定义一些规则,然后将符合某规则的请求转发到相应后端(backend)进行处理。 三、HAProxy性能 HAProxy借助于OS上几种常见的技术来实现性能的最大化,所有的这些细微之处的优化实现了在中等规模负载之上依然有着相当低的CPU负载,甚至于在非常高的负载场景中,5%的用户空间占用率和95%的系统空间占用率也是非常普遍的现象

Centos 7基于Haproxy搭建高可用Web群集

独自空忆成欢 提交于 2019-12-17 20:05:17
Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多,如LVS和Nginx。相比较而言,LVS性能最好,但是搭建相对复杂;Nginx的upstream模块支持群集功能,但是相对群集节点健康检查功能不强,性能没有Haproxy好,更多的是应用在企业内网环境中。 搭建LVS群集可以参考博文: Centos 7搭建LVS+Keepalived高可用Web服务群集 Nginx群集可以参考博文: 基于centos 7安装Tomcat服务及其负载均衡 关于Haproxy搭建Web群集原理概述参考博文: Haproxy搭建Web群集概述 一、部署基于Haproxy搭建高可用Nginx群集 部署环境如下: 准备工作 1)调通网络,防火墙放行相关流量(我这里直接将防火墙关闭了); 2)准备系统映像,配置本地yum(自行配置); 3)下载haproxy源码包,可以从我提供的网盘链接下载使用: https://pan.baidu.com/s/1I8JCUhejz0VSe8Q4lhzUpQ 提取码:th9x 4)web网站使用apache、Nginx、Tomcat搭建都可以,只要可以访问就行,我这里部署两台Nginx和一台Apache,web网站搭建可以参考: APache网站服务配置访问控制和构建虚拟主机 Centos 7部署Nginx网站服务 基于centos

http 与 rpc 对比

僤鯓⒐⒋嵵緔 提交于 2019-12-16 18:11:28
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 总结:RPC主要用于公司内部服务调用,传输效率高(TCP,报文小),性能消耗低(高效的二进制传输、字节小、序列化耗时少),服务治理方便: 1、传输协议:   RPC:可以基于HTTP协议,也可以基于TCP协议   HTTP:基于HTTP协议 从网络协议来说,Http协议与Rpc同属于应用层, 他们的底层都是tcp协议。RPC(即Remote Procedure Call,远程过程调用)和HTTP(HyperText Transfer Protocol,超文本传输协议)他们最本质的区别,就是RPC主要工作在TCP协议之上,而HTTP服务主要是工作在HTTP协议之上,我们都知道HTTP协议是在传输层协议TCP之上的,所以效率来看的话,RPC当然是要更胜一筹。 2、传输效率:   RPC:使用自定义的TCP协议,可以让请求报文体积更小,或者使用HTTP2协议,也可以很好的减小报文体积,提高传输效率   HTTP:如果是基于http1.1的协议,请求中会包含很多无用的内容,如果是基于HTTP2.0,那么简单的封装下可以作为一个RPC来使用,这时标准的RPC框架更多的是服务治理。 http协议其实是属于面向桌面浏览器的一个通信协议,对于缓存,幂等或者Cookies相关的方面做了很多的事情。但是对于服务器之间直接的交互

redis sentinel集群

夙愿已清 提交于 2019-12-16 14:54:10
ip分布情况: sentinel-1/redis 主 10.11.11.5 sentinel-2/redis 从 10.11.11.7 sentinel-3/redis 从 10.11.11.8 haproxy 10.11.11.10 软件版本: redis-2.8.20-3.el6.art.x86_64.rpm haproxy-1.5.4-3.el6.x86_64 开始配置: 一 、redis配置 1.1 redis 主配置: /etc/redis.conf,详细参考 http://yijiebuyi.com/blog/bc2b3d3e010bf87ba55267f95ab3aa71.html daemonize yes #Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 pidfile "/var/run/redis/redis.pid" #当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定 port 6379 #指定Redis监听端口,默认端口为6379 tcp-backlog 511 # TCP接收队列长度,受/proc/sys/net/core/somaxconn和tcp_max_syn_backlog这两个内核参数的影响 bind 10.11.11.5

Linux安装HAProxy(CentOS 7)

不问归期 提交于 2019-12-15 19:34:42
一、HAProxy简介   HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。   HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。   HAProxy实现了一种事件驱动, 单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制 、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。事件驱动模型因为在有更好的资源和时间管理的用户空间(User-Space) 实现所有这些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以 使每个CPU时间片(Cycle)做更多的工作。 以下为HAProxy配置两台服务器,其地址为: 服务器1:10.192.235.23:8023 服务器2:10.192.235.211:8023 HAProxy安装地址:10.192.235.23:18023 二、HAProxy的下载 下载地址1: http://www.haproxy.org/ 下载地址2: http://pkgs

详述Haproxy搭建web群集

给你一囗甜甜゛ 提交于 2019-12-14 23:32:17
常见的Web集群调度器 目前常见的Web集群调度器分为软件和硬件,软件通常使用开源的LVS、Haproxy、Nginx,硬件一般使用比较多的时F5,也有很多人使用国内的一些产品,如梭子鱼、绿盟等 Haproxy应用分析 LVS在企业应用中抗负载能力强,但存在不足 LVS不支持正则处理,不能实现动静分离 对于大型网站,LVS的实施配置复杂,维护成本相对较高 Haproxy是一款可提供高可用性、负载均衡、及基于TCP和HTTP应用的代理的软件 特别适用于负载特别大的Web站点 运行在当前的硬件上可支持数以万计的并发连接请求 Haproxy调度算法原理 Haproxy支持多种调度算法,最常用的有三种 RR (Round Robin) RR算法是最简单最常用的一种算法,即轮询调度 理解举例 有三个节点A、B、C,第一个用户访问会被指派到节点A,第二个用户访问会被指派到节点B,第三个用户访问会被指派到节点 第四个用户访问继续指派到节点A,轮询分配访问请求实现负载均衡效果 LC (Least Connections) LC算法即最小连接数算法,根据后端的节点连接数大小动态分配前端请求 理解举例 有三个节点A、B、C,各节点的连接数分别为A:4、B:5、 C:6, 此时如果有第一个用户连接请求,会被指派到A上,连接数变为A:5、B:5、 C:6 第二个用户请求会继续分配到A上,连接数变为A:6

HA Proxy simple forwarding with Docker

两盒软妹~` 提交于 2019-12-14 03:22:42
问题 I am attempting to learn how to forward http traffic with HA Proxy. To get started I thought I would use Docker and have come stuck. The forwarding traffic im attempting to do looks like this ha-proxy container port 81 >>> forward to nginx container port 8088 When I load the ha proxy container from my browser with the url http://localhost:81/ The error message I get is 503 Service Unavailable No server is available to handle this request. My setup looks like the following. nginx - container