Articles of haproxy

HAProxy mysql写故障转移

我有一个HAProxy服务器负载平衡两个主服务器在master-master /主动 – 被动模式。 我可以看到,我已经成功地将所有的READS扩展到了我的两个数据库节点,但是如果当前的写入主控closures,我怎样才能轻松地将主控切换为写操作? 现在,我在每个App服务器上都有一个configuration文件,用于写入的DB_HOST_W和用于读取的DB_HOST_R。 DB_HOST_R指向HAProxy服务器。 DB_HOST_W指向其中一个主节点。 HAProxy自动处理READ操作的故障转移,但是如果发生故障,必须更新configuration文件并更改4个以上App Server的DB_HOST_W值将非常耗时。 有没有更好的办法? 我在这里错过了什么? 我想指出,我有以下configuration: server primary 10.152.142.184:3306 check server secondary 10.152.142.185:3306 check backup 但我不喜欢它,因为虽然它将所有WRITE操作发送到主要,但它也会将ALL READ操作发送到主要,并删除可伸缩性。

HAProxy haproxy-1.5-dev19上的选项http-server-close将导致Connection:closures头部响应

我基本上有以下问题:每当我添加 option http-server-close 到haproxyconfiguration(在前端或后端部分),haproxy将在响应中发送一个Connection:close头部 – 这与应该做的恰恰相反。 我基本上是试图让客户端TCP连接通过保持活动,但由于这似乎并不工作,我不能有,除非我使用默认(保持活动)模式,这将为服务器 – 我不想要那个。 任何解决scheme 这是一个错误? 还是我错过了什么?

使用EIP(基本EC2)在AWS EC2中设置HAProxy / Keepalived vrrp

我是CentOS / Linux / HAProxy / Keepalived的新手,所以在过去几天里我学到了很多东西! 我在Amazon AWS中有2个CentOS 6.5服务器运行在他们自己的EC2 Micro实例上。 我也有1个弹性IP设置。 每个实例都有以下安装: Amazon EC2 API工具 HAProxy的 KEEPALIVED Apache / httpd Java OpenJDK 1.6 我已经在两个实例上安装并configuration了HAProxy。 出于testing的目的,我安装了Apache来提供一个基本的index.html页面,这样我就可以testingHAProxy正在执行LB任务,并且循环法工作正常。 我试图实现的是使用Keepalived来监视LB1(已分配EIP)上的haproxy进程,如果由于某种原因失败或停止,它将调用一个脚本,该脚本使用AWS EC2 API Tools将弹性IP重新分配给第二Loadbalancer接pipe.. 我已经GOOGLE了,看文档来创build一个脚本来实现这一点,但是,当我testing它和HAProxy服务停止,它不运行脚本.. LB1 – keepalived.conf的内容 vrrp_script chk_haproxy { script "killall -0 haproxy" interval 2 weight 2 } vrrp_instance VI_1 { interface eth0 state MASTER virtual_router_id 51 […]

haproxy透明模式14.04

根据我以前的问题, 在haproxy之后的SSHD真正的IP – 我现在试图设置HAProxy透明地将IP传递给后端服务。 tproxy模块加载/和haproxy支持(我重新编译haproxy与USE_LINUX_TPROXY = 1); ~$ uname -r 3.13.0-34-generic ~$ lsmod | grep -ie tprox xt_TPROXY 17356 0 nf_defrag_ipv6 34768 2 xt_socket,xt_TPROXY nf_defrag_ipv4 12758 2 xt_socket,xt_TPROXY x_tables 34059 8 ip6table_filter,xt_mark,ip_tables,xt_socket,iptable_filter,xt_TPROXY,iptable_mangle,ip6_tables ~$ haproxy -vv HA-Proxy version 1.5.3 2014/07/25 Copyright 2000-2014 Willy Tarreau <[email protected]> Build options : TARGET = linux2628 CPU = native CC = […]

HAProxy 1.5 SSL和许多网站

其实我在Apache2上用一些HTTP和一些HTTPS托pipe百个网站,我正在准备一个新的托pipe基础​​架构,我正在使用HAProxy在我的apache / php-fpm集群上负载均衡我所有的HTTP和HTTPS查询。 我正在使用启用了SSL的HA-Proxy版本1.5.8 2014/10/31。 我想用一个简单的HAProxy使用我的apacheconfiguration和所有的证书来configuration这个configuration。 编辑:在TCP上的HTTPS正常工作 我想知道如果我可以使用HAProxy在我的apache服务器上redirect所有的HTTPSstream量,而无需configurationHAProxy上的所有证书,是否可以通过TCP? 我想得到一个简单的HAProxyconfiguration,我不想每次添加另一个网站后编辑haproxy.cfg。 如果我在我的HAProxy后面使用Apache,使用TCP而不是HTTP模式,那么最大的区别是什么? 我可以使用HTTP模式,而无需在haproxy.cfg上设置所有的SSL证书? 如果你有任何build议,我是免费的。

强制Apache proxy_balancer指定给特定的worker

我想在proxy_balancer后面有两个tomcat服务器,所以我可以进行滚动部署。 我有这个工作,所以我可以取下一个tomcat,另一个采取futire请求 <Proxy balancer://production> BalancerMember http://10.10.10.111:8080 route=s1 BalancerMember http://10.10.10.112:8080 route=s2 ProxySet stickysession=ROUTEID </Proxy> ProxyPass /services balancer://production/services Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/;" env=BALANCER_ROUTE_CHANGED 我现在想要做的就是取下一台服务器,然后从平台pipe理器的池中取出。 然后,当我升级并使服务器启动并运行时 – 在返回到池之前,我希望能够访问它,以便在返回到池之前进行检查。 例如 ProxyPass /sanity_check http://10.10.10.111:8080/services 但这不会工作,因为服务器redirect到/服务,并通过平衡器。 我可以做一个单独的域名,但要避免这一点。 我想基于一个URL参数设置一个cookie可能工作,但很难做。 有一些function可以轻松实现吗? 例如在HAProxy我可以做到这一点 use-server tomcat_01 if { path_end TOMCAT_01 } use-server tomcat_02 if { path_end TOMCAT_02 }

OpsWorks中HAProxy实例的密钥pipe理

我正在尝试在OpsWorks HAProxy实例中使用客户端证书validation。 我遇到的问题,这可能是一个noob问题,我该如何部署我的SSL私钥到实例,而不会过度曝光? 私钥可以在Elastic Load Balancer实例中设置,但不支持设置客户端证书。 也可以在OpsWorks App定义中设置密钥,但对于HAProxy实例来说这似乎不是一个选项。 OpsWorks中的SSL密钥的负责部署如何正常完成?

HAProxy / Varnish:redirect一定比例的stream量

我正在尝试为两个不同版本的网页测量单独的统计信息。 所以我需要将我的networkingstream量的一定比例redirect到不同于所请求的页面的页面(即page_1的请求的20%转到page_1.1)。 在我看来,清漆可以在本地统计stream量或请求。 我想我可以让Apache后端计算请求,插入一个自定义头,然后让Varnish发送一个重新启动到客户端,如果后端响应包含该特定的头。 任何想法或build议? 干杯, 杰里米 编辑:我忘了提及在光油前面有一个HAProxy istance,所以我在想另一个好办法做到这一点可以是: 关于HAProxy: 计数page1的请求 如果count> 80,则插入自定义标题 如果count = 100重置计数器 在清漆上 如果自定义头在请求问题客户端重新启动与page1-> page1.1重写 不知道如何用ACL,gpc0和stick-tables来做到这一点。 我正在学习寻找解决scheme:-) 一如既往,想法或build议是受欢迎的

在Apache和Tomcat服务器之间configurationHA代理

想要用我现有的结构来configurationHA代理。 目前我有Apache-> Tomcat服务器。 这个我想改成Apache-> HA Proxy-> Tomcat Server。 HA我configuration了Http请求。 但是我的Apache与AJP13一起工作。 我需要改变吗? 1)Apacheredirect与Http请求? 要么 2)HA接受AJP请求(我不知道这个可以实现与否)? 我认为第一种select是可能的。 任何人可以build议我如何实现第一select? 还有哪一个是最好的办法。

没有主机名的SSL绑定和集中式证书存储?

我们有一个Web应用程序,可以从一个IIS网站提供大量的网站。 IIS网站只是在端口80上具有全部绑定。到目前为止,对于SSL绑定,我们已经为每个需要SSL的域添加了一个新的IP,并为该特定IP地址添加了一个SSL绑定。 现在我们正在调查集中证书商店。 我们认为我们现在可以有一个全面的SSL绑定,只使用提供的主机名并在CCS中查找证书。 但这似乎并非如此。 您可以添加一个全局SSL绑定,并在本地IIS上安装特定证书,也可以使用CCS添加单个SSL绑定,但必须指定一个主机名。 如果我是正确的,那么这对我们来说是一个棘手的问题。 即使证书本身在CCS中,我们仍然会对每个正在使用的证书进行绑定。 我对么? 编辑:这是一个大规模的租赁应用程序。 大约有一百个客户端,有数千个独特的主机名,全部运行在同一个Web应用程序上; 应用程序使用数据库来确定为每个主机名显示的内容。 为每个用于访问应用程序的主机名分别绑定是一个完全不起动的程序。 并且保持在本地IIS实例中加载的SSL证书也是非启动器; 我们一直这样pipe理它,直到现在变得笨拙。 在港口80,我可以有一个全面的约束力; 任何用于连接的主机名都将被定向到Web应用程序。 在端口443,显然我不能这样做,除非证书加载在IIS实例,而不是CCS。 每个IP地址只能使用一个通配符证书。 我不能让它使用SNI传递的主机名来查找正确的证书; 传递的主机名必须首先匹配一个绑定。 理想情况是,如果我可以在端口443上进行全面绑定,它会根据传递的主机名自动查找正确的证书。 似乎IIS并不想让我这样做。 这是非常令人沮丧的。 看起来我们将不得不为此放弃IIS,并将所有SSL卸载到基于Apache的东西上,这似乎更加灵活。