我们目前正在以循环模式使用haproxy来分配部分应用程序服务器的负载。 基本configuration如下所示: listen dev 0.0.0.0:15984 balance roundrobin server dev1 dev1:5984 check server dev2 dev2:5984 check server dev3 dev3:5984 check 我正在执行一些性能testing,并想知道,haproxycaching这个configuration中的东西,或只是redirect请求?
我将使用HAProxy作为负载平衡器,以平衡3个应用程序服务器上的请求。 但是如果平衡器服务器(HAProxy)在某个时候失败了呢? 我想克隆第一个平衡器,所以如果主要平衡器失败了,另一个平衡器将取代它。 像HSRP一样。 可能吗? 如果是的话如何? 谢谢,
我有一个HAProxy LB解决scheme设置,并正常工作。 端口80上的所有HTTPstream量正在成功传递。 我现在试图让SSLstream量工作(在TCP模式,现在只在一台服务器上),但是当通过openssltesting时,我总是收到以下错误: 26396:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:588: 但是,当我尝试在Web服务器的IP地址和主机名上进行相同的testing(openssl s_client -connect)时,一切似乎都没有问题。 我可以在本地设置主机logging,并确认浏览器正在为域名成功提取SSL证书。 我想这使我得出结论,在HAProxy设置我有一个问题,所以真的很感谢这里的一些build议。 frontend https-c-in bind 178.79.xxx.xxx:443 mode tcp default_backend c-https backend c-https balance source option ssl-hello-chk option httpclose server c-web-01 192.168.xxx.xxx:443 check inter 2000 rise 2 fall 5
我在EC2上使用HAProxy并使用httpchkpipe理节点可用性。 我曾经使用一个伪唯一path作为健康检查路线,以确保只有我的服务器响应健康检查。 今天早些时候,我有一个EC2服务器掉了,在haproxyconfiguration自动重新生成(控制器问题)之前,亚马逊已经把IP重新分配给谁的每一个200的请求(蜜jar?),我的HAProxy主机然后拉回服务器进入轮换,并开始分发我的一些stream量,直到控制器恢复,并从列表中删除IP。 TLDR; 有没有办法将服务器身份validation方法添加到HAProxy的httpchk?
我有一个应用程序,其中请求的URL根据内存caching或数据库查找确定将请求转发到哪个服务器。 目前,这只是循环法,但状态只存储在一台服务器上,该服务器需要获取具有一定字段的所有请求。 所以我想实现类似下面的表格: / Objects / ABC / – >在memcache中查找ABC ,返回servera.local – > Server A / Objects / DEF / – >在memcache中查找DEF ,返回serverb.local – > Server B 这是可能的HAProxy? 如果没有,我还能用什么? 如果Server A收到请求,但Server B负责请求,我真的不希望将Server A的请求复制到Server B 另一个可能适用于我的解决scheme是,如果应用程序可以返回告诉HAProxy哪个主机重新发送请求的东西。
我有一个问题,我需要使用相同的RTMP TCP连接来访问它所连接的同一台服务器,如果它是http或https。 以下与http: frontend http mode http bind :80 default_backend web_servers frontend rtmp mode tcp bind :1935 default_backend rtmp backend web_servers mode http option forwardfor balance roundrobin stick store-request src stick-table type ip size 200k expire 2m server web1 10.0.0.2:8080 check server web2 10.0.0.3:8080 check backend rtmp mode tcp stick match src table web_servers server […]
我们目前有一个XMPP服务器,现在开始考虑集群。 我们将有2台机器,每台机器都有一台XMPP服务器。 接口是标准的XMPP连接(不是BOSH)。 我们有在每个XMPP服务器上运行的XMPP组件。 我们正在为XMPP服务器使用Tigase。 Tigase支持集群,但我们有兴趣查看是否可以使用HAProxy来进行集群。 每个请求都需要返回到原始服务器,因此需要某种types的关联。 我们已经查看了HAProxy的文档,并且可以根据源IP进行负载平衡,但是如果源IP改变了,有什么select?
我有一个nginx 1.6.2服务器作为一个负责平衡器后端运行的SSL终止。 所有与后端服务器的通信都通过HTTP进行。 发生了什么事情的图表: /–http—> frontend:80 –\ client –+ +–http—> backend:8000 \–https–> frontend:443 –/ LOAD BALANCER BACKENDS 出于testing目的,我目前只有一个后端。 负载平衡器运行HAProxy 1.5,我有一些控制权。 我在后端nginxconfiguration的server块中有一个非常典型的try_files指令: server { server_name frontend; … try_files $uri $uri/ =404; … } 现在,默认情况下,当我访问一个没有结尾斜杠的目录时,例如https://frontend/somedir ,nginx想要发送一个HTTP 301redirect到一个绝对URL,如http://frontend:8000/somedir/ 。 我可以让nginx使用port_in_redirect off 8000端口号。 但是,我似乎无法更正redirectnginx正在生成的http://scheme的开始。 我能得到nginx的最好的办法是从https://frontend/somedir到http://frontend/somedir/ ,有效地剥离SSL! 负载平衡器正在发送一个X-Forwarded-Proto头文件,但是我没有看到nginx在制作redirect的时候可以参考它。 事实上有一个2012年的答案,说nginx彻底不能做到这一点,解决scheme是用nginxreplace负载平衡器。 恕我直言,这是太重要的事情,以保证这样一个急剧的堆栈变化。 自2012年以来有什么变化吗? 我真的不想在HAProxy级别重写这些redirect:如果我只是总是重写Location: response头的scheme与Web应用程序的HTTPredirect实际有意的HTTPS到HTTPredirect可能会“重新HTTPSed”该计划的要求是与。 编辑: 这是一个最小化的configuration,显示nginx生成绝对Location: URL。 请注意,没有重写。 user nobody nobody; […]
我正在使用下面的configuration为两台Tomcat服务器执行负载平衡。 我configurationHAProxy来执行SSL / TLS桥接/重新encryption。 #————————————————- ——————– #可能的web应用程序的configuration示例。 看到了 #在线完整configuration选项。 # #http://haproxy.1wt.eu/download/1.4/doc/configuration.txt # #————————————————- ——————– #————————————————- ——————– # 全局设置 #————————————————- ——————– 全球 #将这些消息放在/var/log/haproxy.log中 # 需要: # #1)configurationsyslog接受networking日志事件。 这个做完了 #join'-r'选项到SYSLOGD_OPTIONS中 #/ etc / sysconfig / syslog # #2)configurationlocal2事件去到/var/log/haproxy.log #文件。 可以添加如下所示的行 #/ etc / sysconfig / syslog # #local2。* /var/log/haproxy.log # 日志127.0.0.1 local2debugging chroot / var / lib […]
比方说,我有一个像这样的HTTPconfiguration块: listen testing bind 1.2.3.4:80 balance roundrobin use-server server1 if { urlp_val(force) eq 1 } use-server server2 if { urlp_val(force) eq 2 } force-persist if { urlp(offline) -m bool } cookie SRVID insert indirect nocache server server1 1.2.3.5:9000 cookie 1 server server2 1.2.3.6:9000 cookie 2 然后,在某个时候,我通过套接字接口禁用了server2 ,这样它的所有连接现在都被强制转移到了服务器1上。 但是server2并不是真的离线,它只是在维护中,在重新启用之前应该检查一下。 所以请求http://1.2.3.4/?force=2&offline=true代理server2 。 但是这没有发生,它被代理到server1 。 如果我添加option persist然后持久性将保持并没有人将被定向到server1因为server2不是真的不可用。 我怎样才能实现我的目标,即停止自动进入server2负载均衡stream量,但强制条件stream量时,它被禁用?