Articles of haproxy

我可以使用HAProxy负载平衡telnet连接吗?

我们使用HAProxy作为负载均衡器来处理常规的HTTP请求。 我在“HAProxyconfiguration指南”中看不到有关telnet连接的提示:“ HAProxyconfiguration指南” 。 我希望重用HAProxy(或为长寿命的连接启动单独的实例)来平衡TCP客户端,这可以用HAProxy完成吗?

禁用HAProxy中预检选项请求的授权

我们有一个HAProxy设置,对我们的一些后端进行基本authentication。 我们现在要启用CORS请求到我们的后端,但是这对启用了基本auth的用户来说是失败的。 当CORS预先考虑OPTIONS请求时,它不包含auth头,因此失败,请求失败。 有没有办法允许OPTIONS请求没有authrisation但强制所有其他请求? 我们的haproxy.cfg包含以下相关的部分: #User lists used to enforce HTTP Basic Authentication … userlist ul_hyknpj6tb-uakf5isp user fred password $6$H/M21cSsvXn$jlEZQV7QL/clhV7JtZkAQf34QAPfZq5sE.zLE.M3gi4K1DV5J6ppc.e1JAOP0CtVxM0.n157llg5tsTp0gPFj1 …. backend b_term_hyknpj6tb-uakf5isp mode http balance roundrobin option forwardfor stick-table type ip size 1k expire 30s store bytes_in_rate(1s),bytes_out_rate(1s) tcp-request content track-sc2 src tcp-request inspect-delay 200ms tcp-request content accept if ! too_many_req tcp-request content accept if […]

滚动部署在Tomcat后面的HAProxy实例

我有三个Tomcat实例在HAProxy后面运行。 当我对我的Web应用程序进行更改时,我想要进行滚动部署(即一次反弹一个Tomcat),以便用户看不到任何停机时间。 我该怎么做呢? 我看到一个正在运行的haproxy实例可以进行热重新configuration(这对于添加或删除新的池服务器非常有用),但是当其中一个目标服务器暂时closures时,HAProxy如何反应? 如果有比HAProxy更好的解决scheme,我也愿意看看。 谢谢!

当HaProxy达到最大会话限制时,额外请求会发生什么情况

我有3个Web服务器的HA代理负载平衡。 会话限制设置为200,我看到“Curr会话”达到了极限。 我是否正在丢失stream量,还是请求排队等候的额外请求? 我知道这并不理想,但我很想知道实际发生的事情。 我的负载均衡器后面的应用程序不依赖于粘滞的会话。

使用MySQL Master-Master复制的HAproxy非常慢

我有两个多主机模式的MySQL服务器,HAproxy机器用于简单的负载平衡/冗余。 当我直接连接到其中一台服务器并尝试更新大约100,000个条目时,大约半分钟就完成了包括复制。 通过代理连接时,通常需要三分钟以上的时间。 有这种types的延迟是正常的吗? 与我的代理configuration(包括下面)有什么不妥? 这让我感到非常沮丧,因为我认为代理会做某种负载平衡,或者至less几乎没有开销。 #——————————————————————— # Example configuration for a possible web application. See the # full configuration options online. # # http://haproxy.1wt.eu/download/1.4/doc/configuration.txt # #——————————————————————— #——————————————————————— # Global settings #——————————————————————— global # to have these messages end up in /var/log/haproxy.log you will # need to: # # 1) configure syslog to accept network […]

使用Varnish作为负载平衡器

Varnish已经支持负载均衡HTTP 1.1和Web Socket请求,例如https://www.varnish-cache.org/trac/wiki/LoadBalancing 由于我们已经使用Varnish进行caching,如果我们在Varnish之前添加nginx或ha proxy来进行负载平衡,是否有任何好处,还是应该使用Varnish进行负载平衡? 似乎这种做法相当less见,为什么?

Apache和MySQL的HAProxy平衡algorithm

就在最近,我对现有的使用Apache Web服务器和MySQL数据库的项目负责。 Web服务器位于HAProxy负载平衡器的后面,应用程序通过另一个HAProxy连接到MySQL从站。 10个networking服务器中的2个是最近添加的,比旧的更强大。 对于MySQL从站也是一样的:这5个从站中有2个有更多的RAM和CPU。 Apache服务器的平衡algorithm是最不安全的 ,而从服务器的平衡algorithm是源代码 。 至lessMySQL服务器的设置我觉得很奇怪,因为在最糟糕的情况下,“最好”的Apache(最重)总能挑选最差劲的MySQL服务器,如果我理解了HAProxy文档的话 。 我会select调整重量的roundrobin : 10个为三个普通的MySQL服务器 20为更强大的MySQL服务器 而且因为在20秒的超时时间后面的HAProxy,我宁愿使用roundrobin 。 10为八个正常的Apache服务器 20为更强大的Apache服务器 (我会用20来开始,我要去看监控,稍后会调整。) 因为这些服务器在主机托pipe(如:我没有root权限,更改请求需要一些时间),我只想对这个主题有第二个(或更多)的意见:改变平衡是一个好主意algorithm都为了循环 ? 如果最近没有任何性能问题,我不会考虑这个,这只是我觉得值得调整的一个地方。 感谢您的任何build议! 问候丹尼斯

在haproxy.cfg中使用HaProxy环境variables不起作用

试图弄清为什么haproxy.cfg中的环境variables在HA-Proxy版本1.5.2中不起作用 在命令行上,使用Printenv我得到一个环境variables列表,如FE_PORT_8000_TCP_ADDR = 172.17.0.4 我需要在haproxy.cfg中使用。 根据这个和文档我应该如何使用$ FE_PORT_8000_TCP_ADDR或$ {FE_PORT_8000_TCP_ADDR} 在haproxy.conf中使用环境variables 。 但是,这是行不通的。 在Haporxy.cfg硬编码工作,并在浏览器中访问它显示如预期: backend FE # balance roundrobin server FE1 172.17.0.4:8000 maxconn 256 但是同一个假设值的环境variables不会在浏览器中给出503 Service Unavailable。 backend FE # balance roundrobin server FE1 $FE_PORT_8000_TCP_ADDR:8000 maxconn 256 任何想法是什么做错了? 更新:这个人有什么看起来像相同的问题如何在haproxy.conf中使用环境variables

HAProxy TCP透明模式远程服务器

好吧,我有一个HAProxy安装服务器盒,我需要它转发stream量到两个MySQL服务器。 它们都位于完全不同的数据中心。 当我从config中删除它时,它起作用: source 0.0.0.0 usesrc clientip但是,当启用时,我无法从MySQL服务器获得响应。 我在HAProxy服务器上有这些IPTables规则: iptables -t mangle -N DIVERT iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT iptables -t mangle -A DIVERT -j MARK –set-mark 111 iptables -t mangle -A DIVERT -j ACCEPT ip rule add dev eth0 fwmark 111 lookup 100 ip route add local 0.0.0.0/0 dev […]

如何根据请求URI在HAproxy 1.6中添加响应头?

我使用HAproxy 1.6作为tomcat服务器之前的负载平衡器。 我需要添加基于请求URI的响应头。 例如,当请求uri是/api时,我想添加响应头部Cache-Control public,max-age="600" ,而当请求uri是别的东西时,则不会。 我第一次尝试使用基于path的ACL来添加标头到http-response: acl api path_reg ^/api/(.*)$ http-response add-header Cache-Control public,max-age="600" if api 当我用-d启动haproxy时,我警告说path_reg (或path )与http-response不兼容: Dec 6 15:22:29 ip-10-30-0-196 haproxy-systemd-wrapper[315]: [WARNING] 340/152229 (2035) : parsing [/etc/haproxy/haproxy.cfg:78] : acl 'api' will never match because it only involves keywords that are incompatible with 'backend http-response header rule' 我试图在http-request添加标题而不是http-response : acl api path_reg […]