我设置haproxy使用多个后端服务器,但希望其中之一来处理特定的请求: backend bagend mode http balance roundrobin option httpchk GET / HTTP/1.1\r\nHost:\ www.example.com use-server app1_00 if { path_beg /frodo } use-server app1_01 if { path_beg /frodo } use-server app1_02 if { path_beg /frodo } use-server app1_03 if { path_beg /frodo } server app1_00 10.0.0.1:9100 check server app1_01 10.0.0.1:9101 check server app1_02 10.0.0.1:9102 check server app1_03 […]
我们正在将我们的部署从常规的EC2迁移到VPC,公有云中有两个负载平衡器,我们有一些领域“A”logging指向,但是我没有意识到公共弹性IP不能附加到VPC实例,您必须使用基于VPC的弹性IP。 所以你知道,我们的LB是基于HAProxy的实例,而不是Elastic Load Balancers。 所以我们有Apache在这里工作,如果这有助于回答我的问题或提供一个替代。 因为并不是所有指向公众LB的域都在我的控制之下,所以每个人都要把更改安排到DNS上是非常困难的,所以我们称之为不可能。 所以我的问题是,我可以将呼叫redirect到我们的公共LB到VPC的replace吗? 当我们通过我们的客户并且让他们更新他们的DNS时,这将是透明的。 任何build议将不胜感激! 编辑︰扩大一点,这将是一个好处,如果我可以做到这一点简单地使用EC2function,所以我不必保持两个公共LB实例运行。 否则,我需要知道如何完成“redirect”,是在DNS中完成,还是在别的地方完成? 编辑2:没有人能够提供任何见解亚马逊的具体决议,不需要LB实例保持,所以我已经概述了我们在下面select的答案HAProxy做了什么。
我想通过端口转发到达我的NFSv4服务器。 这个大计划将是在本地主机上运行的HAProxy负载平衡的NFSv4服务器集群。 但现在这并不重要。 在服务器上, /etc/exports看起来像这样 /mnt/x 192.168.0.0/16(rw,sync,no_subtree_check,no_root_squash,fsid=1) 我可以从我的客户端连接到TCP 2049上的服务器,并像这样安装共享 mount -t nfs4 -o proto=tcp,port=2049 192.168.2.25:/mnt/x /mnt 我testing了NFVs4很高兴只有这一个TCP端口打开通过过滤两台机器之间的所有其他通信。 所以我认为NFS运行良好。 但是,当我转发一个端口例如与客户端的redir到服务器 redir –lport=3049 –cport=2049 –caddr=192.168.2.25 并想要如下安装它 mount -t nfs4 -o proto=tcp,port=3049 127.0.0.1:/mnt/x /mnt 我明白了 mount.nfs4: Operation not permitted 我想念什么? 我在服务器日志中看不到任何相关的信息。 更新:我捕获了好的和不好的连接尝试,一开始他们是相同的,然后客户端发送一个 PUTROOTFH,GETFH,GETATTR 命令。 在好的情况下服务器响应 PUTROOTFH-NFS4_OK,GETFH-NFS4_OK,GETATTR-NFS4_OK 在不好(转发)的情况下,它回应 PUTROOTFH-NFS4_OK,GETFH-NFS4_OK,GETATTR-NFS4ERR_PERM 这一点我改变了出口 /mnt/x 0.0.0.0/0.0.0.0(rw,sync,no_subtree_check,no_root_squash,fsid=1) 但是错误是一样的。 在好的情况下,服务器日志是 rpc.mountd[1711]: nfsd_export: inbuf '0.0.0.0/0.0.0.0 /' […]
我是haproxy的新手,并将其用于rsyslog日志到ArcSight连接器的TCP负载平衡。 在我的生活中,我无法使stream量在池中的所有节点之间均衡平衡(这是所需的行为)。 我已经尝试了许多重量和maxconn的排列无济于事。 感觉这应该是一个简单的问题,但是每个池节点的行为是非常混乱的。 而且,由于大多数人使用haproxy进行http负载均衡,所以我发现很less有关我正在尝试做什么的最佳方法。 任何人有任何见解,validationconfiguration或疑难解答步骤推荐? 谢谢! 这是我们目前的configuration: global log 127.0.0.1 local0 log 127.0.0.1 local1 notice maxconn 256000 user haproxy group haproxy spread-checks 5 daemon quiet defaults log global option dontlognull option redispatch option allbackups maxconn 256000 timeout connect 5000 listen stats :1936 mode http stats enable stats realm Haproxy\ Statistics stats uri / stats […]
我们目前遇到了在Ubuntu AWS群集上validationComodo SSL证书的问题。 浏览器正在显示网站/内容的罚款,并显示所有相关的证书信息(至less,我们已经检查),但某些networking代理和在线SSL检查器显示我们有一个不完整的链。 我们尝试了以下尝试解决此问题: 升级haproxy到最新的1.5.3 创build一个包含所有证书(站点,中间,w /和w / out根)的连接“.pem” 在我们的haproxy.cfg文件的“绑定”行中添加了一个显式的“ca-file”属性。 “.pem”文件使用opensslvalidationOK。 各种中间和根证书已安装并显示在/ etc / ssl / certs中。 但是检查仍然会以不完整的链条返回。 任何人都可以build议我们可以检查的任何其他事情,或者我们可以尝试解决这个问题的其他更改吗? 提前谢谢了… 更新 :从haproxy.cfg唯一相关的行(我相信),是这样的: bind *:443 ssl crt /etc/ssl/domainaname.com.pem 更新2 :从openssl s_client输出 CONNECTED(00000003) depth=0 OU = Domain Control Validated, OU = COMODO SSL, CN = www.domainname.com verify error:num=20:unable to get local issuer certificate verify return:1 depth=0 […]
下面给出的是我的haproxy.xfg文件。 HAPRoxy版本1.4.18,2011/09/16发布没有打电话给heatbeat.html。 尽pipeserver1没有heartbeat.html,但它正在向两个服务器发送stream量。 global log 127.0.0.1 local2 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 #user haproxy #group haproxy daemon defaults mode http log global option httplog option dontlognull retries 1 timeout http-request 300s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 10s timeout check 10s maxconn 3000 listen http_proxy 0.0.0.0:8980 […]
我遇到了haproxy的问题。 每当我closuresvirtuoso,haproxy显示以下错误信息: 7月9日syslogd @ master0的消息14:39:18 haproxy [4403]:后台virtuoso没有可用的服务器! 我发现以下链接 ,他们build议使用*.emerg;local2.none  *但我真的不知道如何可以帮助和它应该在configuration文件中的位置。 如何修改configuration文件以隐藏错误信息。 configuration文件 #$export HAPROXY=/scratch_globa/HAProxy/haproxy-1.5.12-dist global log /dev/log local0 log /dev/log local1 notice user test group test_1 maxconn 8890 daemon defaults log global mode http option httplog option dontlognull # # Listen on *:80 – Send traffic to the backend named "apache" # frontend www-http […]
我正在运行从上游源接收第4层代理协议的HAProxy。 我需要创build一个自定义的HTTP头,其中包含的地址。 我似乎无法find我如何可以引用该TCP标头。 下面是我想要做的一个例子: frontend http_in bind *:1025 accept-proxy mode http default_backend http_out backend http_out mode http http-request set-header X-Custom-Header %[<ip from proxy protocol header>] server some-server some-server:80 我怎样才能确保我用L4头的地址填充新的头,而不是一些可欺骗的HTTP头?
我正在使用HAProxy来平衡应用服务器。 每个应用程序服务器都有一个最大连接限制,一旦超过该限制,超出队列。 当发生这种情况时,我将添加另一个应用程序服务器到HAProxy,并使用“优雅的重新加载”来保持传入的请求,直到服务再次启动。 我的问题是,当它重新启动时,现有队列将会发生什么 – 将会被保留吗? 如果不是,我怎么能保留它呢? 我显然不希望HTTP请求在重新加载时被丢弃。
我试图在运行Ubuntu 10.04的EC2机器上运行HAProxy(1.4.8)。 我需要HAProxy能够处理数千个长时间运行的持久连接(websockets)。 目前的设置HAProxy在大约54,300个连接(大致)中死亡。 如果我在前台运行HAProxy,则唯一的输出是“Killed”。 我是否认为这是内核杀死进程? 这是因为资源不足吗? 我可以增加资源吗? CPU和内存消耗低,50,000个连接,所以我不怀疑这些。 我怎样才能防止这种情况发生?