我最近发现,您可以根据请求主机头dynamic匹配后端,如下所示: use_backend %[req.hdr(host),lower] 然而,有没有人知道我可以使用请求hostheader的子域来匹配后端? 例如这样的话: backend one backend two use_backend %[<SUBDOMAIN OF HOSTHEADER>,lower] 这将匹配像这样: one.example.com -> backend one two.example.com -> backend two
我有一个HAProxy服务器设置与行: bind *:443 ssl crt /etc/ssl/domain.com/domain.com.pem 我有以下文件: /etc/ssl/domain.com/domain.com.key /etc/ssl/domain.com/domain.com.csr 我已经购买了Geotrust的证书,它给了我一个Primary Intermediate Certificate , Secondary Intermediate Certificate和End Entity Certificate 我已经将PIC,SID,EEC,KEY命令中的文件连接到/etc/ssl/domain.com/domain.com.pem ,并通过openssl verify /etc/ssl/domain.com/domain.com.pem openssl verify -CAfile /etc/ssl/domain.com/domain.com.pem /etc/ssl/domain.com/domain.com.pem 我也使用http://www.sslshopper.com/certificate-decoder.htmlvalidation了这个文件 当我运行haproxy -f /etc/haproxy/haproxy.cfg -c我得到 'bind *:443 : inconsistencies between private key and certificate loaded from PEM file '/etc/ssl/domain.com/domain.com.pem' Proxy 'http-in': no SSL certificate specified for bind '*:443' […]
我在我的haproxy.conf中有以下几行: acl valid_domains hdr(Host) -i mysite.com images.mysite.com docs.mysite.com admin.mysite.com redirect location http://mysite.com/invalid_domain if !valid_domains 我如何匹配任何子域名? 我试过了: acl valid_domains hdr(Host) -i *.mysite.com 和: acl valid_domains hdr(Host) -i [az]+.mysite.com …但都没有工作。 谢谢
目前,我有两个运行HAProxy的负载平衡器,它将请求转发到后端,每个后端都在nginx前面运行Varnishcaching。 我认为这将在后端服务器上分配大部分带宽,但是我的负载平衡器似乎每个月使用数百个带宽,这与后端使用的带宽接近。 我想这是有道理的,因为stream量都通过负载均衡器路由? 我的负载均衡器和后端位于美国的不同地区。 如果我只在前端运行HAProxy和Varnish,而在后端运行nginx,效率会更高吗? 谢谢!
我正在使用nginx haproxy&apache设置HA(高可用性)集群。 我一直在阅读有关nginx和haproxy的好消息。 人们往往select一个或另一个,但我喜欢两个。 Hyproxy比Nginx简单的循环(即使使用上游公平补丁)更灵活的进行负载平衡。 但是我希望保持nginx在进入集群的时候将非httpsredirect到https。 另一方面,nginx提供静态内容的速度要快很多,并且会减less那些喜欢吃大量RAM的强大的apache的负载! 这是我计划的设置: 负载平衡器:nginx监听端口80/443和proxy_forward到同一台服务器上的8080上的haproxy,以在多个节点之间进行负载平衡。 节点:节点上的nginx监听8080上来自haproxy的请求,如果内容是静态的,则为其提供服务。 但是,如果它是一个后端脚本(在我的情况下PHP),代理转发到同一节点服务器上的apache2聆听不同的端口号。 从技术上讲,这个设置的工作,但我的顾虑是是否有请求通过几个代理将减慢请求? 大部分的请求将是PHP请求,因为后端是服务(这意味着从nginx – > haproxy – > nginx – > apache)。 思考? 干杯
我的HAProxyconfiguration。 #HA-Proxy version 1.3.22 2009/10/14 Copyright 2000-2009 Willy Tarreau <[email protected]> global maxconn 10000 spread-checks 50 user haproxy group haproxy daemon stats socket /tmp/haproxy log localhost local0 log localhost local1 notice defaults mode http maxconn 50000 timeout client 10000 option forwardfor except 127.0.0.1 option httpclose option httplog listen dcaustin 0.0.0.0:80 mode http timeout connect 12000 timeout […]
我有TCP模式的HAProxy设置,客户端/服务器/连接超时120s。 当我重新加载configuration的速度太快,我有时结束了多个进程。 按照devise,这是预料之中的,所有已build立的连接都被排除了。 我的问题是,即使所有连接都closures,它们也不会终止。 ps aux | HAProxy的 haproxy 12483 0.0 0.1 103748 1084 ? Ss 20:45 0:00 /usr/sbin/haproxy -D -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid -sf 12405 haproxy 12485 0.0 0.1 103748 1088 ? Ss 20:45 0:00 /usr/sbin/haproxy -D -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid -sf 12405 haproxy 12487 0.0 0.1 103748 1084 ? Ss 20:45 0:00 /usr/sbin/haproxy […]
我正在尝试使用HAProxy作为2个mysql节点的负载平衡器。 我有HAProxy在3307监听,它将请求路由到3306上的DB。当客户端正在尝试连接到代理(mysql -u … -h .. -P3307 -p …)时,它得到以下错误: 错误2013(HY000):在'读取初始通信数据包'丢失连接到MySQL服务器,系统>错误:0 当客户端试图直接连接到数据库时,它工作正常。 我不知道为什么当通过代理服务器的stream量失败。 这是我已经检查: /etc/hosts.allow包括“mysqld:ALL:allow” MySQLconfiguration文件(my.cnf)没有绑定地址行(全部开放)。 我正在使用HAProxy 1.5dev,Mysql 5.1.x,整个enchilada在Amazon linux上运行在ec2上。 这里是HAProxyconfiguration文件: global log 127.0.0.1 local0 log 127.0.0.1 local1 notice #log loghost local0 info user haproxy group haproxy maxconn 4096 daemon #debug #quiet defaults log global mode tcp option tcplog option dontlognull retries 3 option redispatch maxconn […]
我正在使用Haproxy负载平衡复制MySQL主服务器。 我还使用Heartbeat和Pacemaker进行主动/主动IP故障切换,在两台负载平衡器上使用两个虚拟IPS来实现Web服务器高可用性。 我在起搏器中使用位置,以便在每个负载平衡器上保留一个VIP,并使用指向VIP的循环DNS域负载平衡负载均衡器。 一切看起来都很好! | LB1 :| 循环 – > | 1.2.3.4 | 心跳起搏器| Haproxy | 192.168.1.1 | | | | | | LB2 :| 循环 – > | 5.6.7.8 | 心跳起搏器| Haproxy | 192.168.1.2 crmconfigurationshow node $id="394647e0-0a08-451f-a5bf-6c568854f8d1" lb1 node $id="9e95dc4f-8a9a-4727-af5a-40919ac902ba" lb2 primitive vip1 ocf:heartbeat:IPaddr2 \ params ip="1.2.3.4" cidr_netmask="255.255.255.0" nic="eth0:0" \ op monitor interval="40s" timeout="20s" […]
我想要返回一个HTTP 204错误代码,如果有人试图访问我的Web服务器上的特定path。 我可以设置我的一个web服务器返回一个204错误,并指向haproxy作为后端。 然而,由于没有信息被发送,我认为这应该是可能从haproxy本身。 无需打扰我的实际Web服务器。 我试图创build一个后端,将生成204错误,如下所示: frontend … … acl is_always204 path_beg /thisone use_backend always204 if is_always204 … backend always204 errorfile 404 /etc/haproxy-shared/errors/204.http 204.http文件包含: HTTP/1.0 204 No Content Cache-Control: no-cache Connection: close Content-Type: image/png 当我开始haproxy时,我得到这个错误: parsing [/etc/haproxy/haproxy:51] : status code 404 not handled, error customization will be ignored. 我想我可能会以这种错误的方式去做。 任何人都可以提出一种方法来强制haproxy返回给定的acl匹配204?