我正在设置一个临时haproxy实例来帮助testing一个iphone应用程序的新后端。 我的计划是build立一个所有电话数据都要经过的代理,而不是与特定的应用程序或越狱程序相匹配,而是将其与主机头匹配,并将其转发给尚未生效的新服务器。 总之,我希望haproxy像一个开放的代理,除了一些特定的主机名。 匹配主机名和转发他们是完美的,但我似乎无法使开放代理位工作。 我在Ubuntu Precise上使用股票haproxy 1.4.18软件包进行股票全局设置,以及这些代理设置: frontend myapp bind 0.0.0.0:8080 default_backend passthrough acl mydomain hdr_end(Host) .example.com use_backend front if mydomain backend front server front 127.0.0.1:80 backend passthrough server ??? 所以前端位于8080端口,默认将请求推送到passthrough后端。 在此之前,它会检查acl以查看请求是否在我的域中的主机名,如果是,请将其转发到本地应用程序。 问题出在这个passthrough后端。 我希望它将请求直接传递到请求的主机,而不是本地端点。 我放在那里的configuration将不起作用,但我不知道应该说什么。 例如,如果我请求http://www.serverfault.com ,它不符合我的ACL,所以我希望它直接转发到serverfault,而不是本地服务器。 我不知道什么指令会在后端做这件事,或者是否有一些前端指令可以做到这一点。 就委托代理而言,这或多或less是一种无用的操作。 (是的,我知道开放的代理服务器是不好的;这是一个临时的testingconfiguration,每次只能交互运行几分钟) 更新 :我发现option http_proxy正是我所需要的,除了它不做DNS查找,只有显式的IP,所以像这样的后端几乎在那里: backend passthrough option http_proxy option httpclose 我知道我可能可以使用别的东西,但我碰巧真的很喜欢haproxy!
我有 一项称为传统服务的服务 另一种称为开发服务的服务 一堆HTTP请求来到传统服务 有没有办法在不编写自定义实用程序的情况下将HTTP请求代理到传统服务和新服务? 所以我可以在真实stream量上testing我的开发服务,但不closures传统服务。
我是haproxy的新手,并想知道如果有人可以确认下面的configuration是有效的? 实际上,我想在多个端口上加载平衡的两台服务器。 <snippet> Listen mybackendLB bind 10.6.200.14:555,10.6.200.14:8009,10.6.200.14:443 mode tcp balance roundrobin option httpchk "/test.html" server app1 192.168.0.20:555 check port 8008 server app1 192.168.0.20:8009 check port 8008 server app1 192.168.0.20:443 check port 8008 server app2 192.168.0.21:555 check port 8008 server app2 192.168.0.21:8009 check port 8008 server app2 192.168.0.21:443 check port 8008 <snippet> 无论如何,这会是一个更好的select吗? <snippet> Listen mybackendLB […]
我正试图让HAProxy运行。 我有木偶大师设置服务configuration到两个代理。 一个是HAproxy服务器,另一个是简单的Web服务器(certname = webserver2)。 正如预期的那样,HAproxy正在被代理服务器上的puppet部署,但生成的HAProxyconfiguration是我不理解的。 我没有看到任何单一的引用stream量应该转发到的webserver2的IP地址。 包含在haproxyconfiguration中的所有IP都是HAProxy服务器本身的IP。 我可能会误解某些东西或者错过了应该做的事情。 请帮我通过这个。 我的目标是平衡(循环)stream量到两个服务器webserver1和webserver2 这是我的木偶大师site.pp: node /^haproxy.*/ { Haproxy::Balancermember <<| listening_service == 'puppet00' |>> class { 'haproxy': } haproxy::listen { 'puppet00': ipaddress => $::ipaddress, ports => ['55672','5672'], } } node 'webserver2' { @@haproxy::balancermember { $fqdn: listening_service => 'puppet00', server_names => $::hostname, ipaddresses => $::ipaddress, ports => ['55672','5672'], options […]
我想用haproxy设置集群,我有一个负载平衡器和两个节点。 一些如何haproxy只采取一个节点。 它运行良好,直到一个XXX.XX.X.196启动并运行,但只要我closures它,并尝试再次启动haproxy它给了我这个错误。 当XXX.XX.X.196上的tomcatclosures时,我不处理请求,但是我仍然在XXX.XX.X.193上启动并运行了tomcat。 XXX.XX.X.189:负载平衡器 XXX.XX.X.193:节点1,运行Apache tomcat XXX.XX.X.196:节点2,运行Apache tomcat global log 127.0.0.1 local2 debug #log using syslog service on localhost maxconn 4096 # Total Max Connections. This is dependent on ulimit daemon defaults mode http maxconn 4096 clitimeout 60000 srvtimeout 30000 contimeout 4000 option httpclose # Disable Keepalive log global option httplog listen farm XXX.XX.X.189:80 […]
一些骗子正试图使用匿名代理访问我的网站。 有没有办法阻止从haproxy或nginx的匿名代理连接? 谢谢
是否可以为HAProxy编写自定义路由逻辑? 我需要这样一种方式,每个应用程序服务器最多分配1000个TCP连接,然后只有负载均衡器尝试将下一个TCP请求路由到下一个应用程序服务器。 如果没有HAProxy,如果有任何其他负载平衡器,可以做到这一点,请让我知道。 可以持久性应用于TCP连接。 没有HTTP请求。 谢谢
我有一个MSMQ发送器(产生约10k信息/秒)和一个MSMQ接收器(2k信息/秒)的系统。 生成和发送消息很快,阅读和处理速度很慢。 因此,我想把一个负载平衡器,并使用一些接收器。 目前消息是XML格式的,一旦我理清负载平衡,我打算移动到二进制格式化。 问题:具有特定标签的消息(或者如果可能的话,内部XML标签值)应当始终与完全相同的接收者。 服务器宕机的情况超出了这个问题的范围(如果你知道如何处理这个问题,奖金)。 我使用HAProxy进行其他轮询MSMQ负载平衡,并且在TCP模式下工作正常。 我想知道是否可以在这种情况下重用它。 问题:如何configurationHAProxy来根据消息中的标签或XML格式的标签值来负载平衡MSMQ消息。 具有相同标签的消息必须送到常量接收器。 还有其他的select吗? 样品: message [Label="server1"] [XML BODY …] => LB => server1 message [Label="server2"] [XML BODY …] => LB => server2 或类似于RabbitMQ为“直接交换” 图片来源: pubs.vmware.com
我试图用haproxy检查我的应用程序(运行在SSL上)。 在阅读文档时,我的健康检查选项是: httpchk,它将HTTP请求发送到可configuration的URL ssl-hello-chk,它向服务器发送一个SSL HELLO,但是你不能configuration一个URL。 看起来这些选项是互不相容的 – 指定一个不允许你指定另一个。 有没有办法对特定的URL进行SSL请求,并检查它是否已经启动?
我想configurationhaproxy集群几个MySQL服务器(galera集群),但似乎haproxy不接受server指令中的DNS名称。 如configuration listen mysql 127.0.0.1:3306 timeout connect 10000 option clitcpka option srvtcpka option abortonclose mode tcp option mysql-check balance roundrobin # this works server mysql-001 1.2.3.4:3306 check port 3306 check inter 5000 server mysql-002 1.2.3.5:3306 check port 3306 check inter 5000 # this doesn't server mysql-003 ec2-1-2-3-6.eu-west-01.compute.amazonaws.com:3306 check port 3306 check inter 5000 它抱怨错误: [ALERT] […]