我使用相同的HAProxy实例从域中提供多个服务,位于domain.com/s1/和domain.com/s2/ 。 只有在 s2 内满足某些条件的情况下,才想进行一些操作(包括ACL匹配)。 用acl就好 acl service_1 path_beg /s1/ acl service_2 path_beg /s2/ acl service_1_path_1 path_beg /s2/path1/ acl service_1_path_2 path_beg /s2/path2/ 将导致所有的请求被匹配为s2/path1/和/s2/path2/ patterns,如果我知道绝大多数请求是针对s1 ,这是浪费的。 有没有一种方法可以说“仅在acl service_2匹配时才评估path_1或path_2模式”? 请注意,这不是一个想要AND两个条件的情况; 我想第二个acl甚至不计算,除非第一个匹配。 这甚至可能在HAProxy?
我有一个haproxy服务器,它平衡了三个生产服务器(由于我不明白的原因) 源algorithm之间的负载。 其中一个不断进入状态,虽然它不正常工作,haproxy没有发现这一点。 因此,我的网站出现了一些人。 我有一个testinghaproxy服务器,它平衡了一些testing服务器上的负载。 我想testing一下其他的haproxy.cfg来查看是否可以检测到有问题的服务器。 但是,这个故障是间歇性的,我不能重现它 – 我必须等到自然发生。 我想我可以testinghaproxytesting服务器,让它平衡负载在有故障的生产服务器上。 但是,这将不得不与生产haproxy服务器同时发生,以便发生故障。 然后我可以看到testinghaproxy服务器(具有不同的haproxy.cfg )是否已经发现它。 但是,作为一个完整的初学者,我不知道是否让两个haproxy服务器平衡同一个(生产)服务器上的负载是可能的/明智的/确实是一个非常愚蠢的想法。
我们要为其中一个Java应用程序设置故障转移机制,应用程序在一台服务器上有3个实例,每个实例必须通过不同的URL访问,这些URL已经注册,并可以通过dns访问。 在辅助服务器上,我们做复制(重要的部分是,实例可以启动,只能在一台物理机上运行),因此我们build立了辅助服务器,如果主要出现故障,我们想为一个域注册多个IP,但由于应用程序旨在只有一个IP注册到实例url。 多个IP设置的另一个问题是dns的循环性质。 是否有可能为一个域注册两个IP,并通过nginx或HAproxy将其代理指向只有主服务器? 还是其他一些想法? 我的想法是,如果主要出现故障,请打开辅助服务器上的应用程序,并尽可能在nginx上更改configuration,以避免dns注册和传播时间?
我一直在为这个问题奋斗了几个星期,而且我正在用尽想法。 我运行HAProxy来根据请求的path/头来在3个后端之间进行代理请求。 我的后端是: Amazon S3存储桶 一个Node.js应用程序(2台服务器) 一项名为prerender.io的服务 最后一个后端(prerender.io)似乎没有问题(虽然stream量很小)。 另外两个随机返回504错误给客户(大约每分钟根据日志,但没有明确的模式)。 这是我的(消毒)configuration: defaults log global mode http option httplog option dontlognull timeout connect 5s timeout client 120s timeout server 120s frontend foobar mode http bind *:80 bind *:443 ssl crt /etc/ssl/certs/foobar.com.pem redirect scheme https code 301 if !{ ssl_fc } default_backend s3 acl api path_beg -i /api/ […]
我想在haproxy的后端添加一个path。 我不想使用redirect。 所以我尝试使用reqrep 基本上我需要什么: 前端: resources.mydomain.com/images/path/to/resource.png 然后它需要转发到: backend.mydomain.com/replaced/part/path/to/resource.png 这是我的cfg frontend http-in bind 0.0.0.0:80 mode http option httplog acl path_ok path_end .gif acl path_ok path_end .jpg acl path_ok path_end .png http-request deny unless path_ok use_backend resourceBackend if path_ok backend resourceBackend reqrep ^([^\ :]*)\ /images[/]?(.*) \1\/replaced/part/\2 mode http option httpchk option forwardfor except 127.0.0.1 http-request add-header X-Forwarded-Proto […]
我需要检查POST JSON后端,但无法find一种方法来做到这一点。 下面是工作的curlPOST。 我如何处理HAPROXY httpchk curl -H "Content-Type: application/json" -X POST -d '["za.co.calculator",{"grossMonthlyIncome":["java.math.BigDecimal",100000.00],"loanTermYears":20,"interestRate":["java.math.BigDecimal",10.25]}]' https://servername/calculator/api/calculator/calculateMaximumLoanAmount 我的HaProxyconfiguration是: option httpchk POST /calculator-service-2.0/api/calculator/calculateMaximumLoanAmount HTTP/1.1\r\nContent-Type: application/json\r\nContent-Length: 174\r\n\r\n{"za.co.fnb.soa.calculator.dto.S_MaxBondInputInfo",{"grossMonthlyIncome":["java.math.BigDecimal",100000.00],"loanTermYears":20,"interestRate":["java.math.BigDecimal",10.25]}}
我有几个领域是我的主要领域的变化。 我想将它们全部redirect到我的主域,忽略协议(http / https)和子域(www./beta。)。 有没有办法做到这一点在HAProxyconfiguration? 我正在想着类似的东西 redirect prefix https://*.domainA.com code 301 if { hdr(host) -i *.domainB.com } redirect prefix https://*.domainA.com code 301 if { hdr(host) -i *.domainC.org }
这更多的是“最佳做法”或“投入赞赏”的问题。 目前我们pipe理大约5个运行Nginx PHP网站的Web服务器(在两个DC中)。 计划是重新devise设置,以便从pipe理的angular度来看更易于pipe理。 一个服务器在另一个networking中的DC中,其余的在单个机架中。 我们有时必须将客户端网站从一台服务器移动到另一台服务器,我们希望允许某些客户端的冗余等,所以代理似乎是一个好开始,任何速度的提高是非常受欢迎的,HAProxy似乎是一个很好的候选人都。 我们现在的想法是把HAProxy制作成一台机器,这样我们就可以在任何地方redirect任何东西,看起来很聪明,可以让机器像CARP一样进行故障转移。 任何见解/意见,高度赞赏。
我目前正在使用haproxy来做reverse_proxy。 不幸的是,我不能得到它的工作! 这是我的configuration: backend twisted mode http timeout connect 10s timeout server 30s balance roundrobin server apache1 127.0.0.1:11111 weight 1 maxconn 512 backend cometd mode http timeout connect 5s timeout server 5m balance roundrobin server cometd1 127.0.0.1:12345 weight 1 maxconn 10000 frontend http_proxy #arbitrary name for the frontend bind *:80 #all interfaces at port 80 […]
我正在设置一个冗余networking,使用负载平衡解决scheme来redirect两台服务器之间的stream量。 我将使用的负载均衡器是HaProxy。 示例:stream量 – > Haproxy – > Server1或Server2 现在,Server1和Server2都会有litespeed和MySQL(和其他各种组件,但不需要冗余) 所以如果Server1或Server2由于高负载,停机或攻击而被排除在等式之外,那么将剩下可以处理所有传入通信量的服务器。 这一切都很好,我只是在解释场景,但我需要知道的是,所有在服务器1上更新的文件都需要同步到服务器2,反之亦然。 文件可以接受小的延迟,例如2-5分钟,而在Server1或Server2上进行的数据库更改需要几乎立即被复制。 那么这可能吗? 我不想在软件等上花太多钱。PS这两台服务器在互相之间是半途而废,所以我不希望即时复制的速度尽可能快。 在此先感谢您的帮助。