问题标签 [haproxy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
43913 浏览

http - 在 nginx 中处理 OPTIONS 请求

我们目前使用 HAProxy 作为负载均衡器,它会定期向下游框发出请求,以确保它们使用 OPTIONS 请求处于活动状态:

选项 /index.html HTTP/1.0

我正在将 nginx 设置为带有缓存的反向代理(使用 ncache)。出于某种原因,当 OPTIONS 请求进来时,nginx 会返回 405:

192.168.1.10 - - [22/Oct/2008:16:36:21 -0700]“选项/index.html HTTP/1.0”405 325“-”“-”192.168.1.10

直接访问下游网络服务器时,我得到正确的 200 响应。我的问题是:如何让 nginx 将该响应传递给 HAProxy,或者,如何在 nginx.conf 中设置响应?

0 投票
5 回答
14206 浏览

amazon-ec2 - Amazon EC2 中的负载平衡?

我们已经在 Amazon EC2 中与HAProxy斗争了几天;到目前为止,体验非常好,但我们一直坚持从软件负载平衡器中挤出更多性能。我们并不完全是 Linux 网络专家(我们通常是一家 .NET 商店),但到目前为止,我们一直坚持自己的想法,尝试设置适当的 ulimit,检查内核消息和 tcpdump 是否存在任何违规行为。到目前为止,我们已经达到了大约 1,700 个请求/秒的稳定期,此时客户端超时比比皆是(我们一直在使用和调整httperf以此目的)。我和一位同事正在收听最新的 Stack Overflow 播客,其中 Reddit 的创始人注意到他们的整个网站都运行在一个 HAProxy 节点上,并且到目前为止还没有成为瓶颈。确认!要么不知何故看不到那么多并发请求,要么我们做错了什么,要么 EC2 的共享特性限制了 Ec2 实例的网络堆栈(我们使用的是大型实例类型)。考虑到 Joel 和 Reddit 的创始人都同意网络可能是限制因素这一事实,这可能是我们看到的限制吗?

任何想法都非常感谢!

编辑看起来实际问题实际上不是负载均衡器节点!在这种情况下,罪魁祸首实际上是运行 httperf 的节点。当 httperf 为每个请求构建和拆除一个套接字时,它会在内核中花费大量的 CPU 时间。当我们提高请求率时,TCP FIN TTL(默认为 60 秒)使套接字保持的时间过长,而 ip_local_port_range 的默认值对于这种使用场景来说太低了。基本上,在客户端(httperf)节点不断创建和销毁新套接字的几分钟后,未使用的端口数用完,随后的“请求”在此阶段出错,产生低请求/秒数和大量的错误。

我们也看过 nginx,但我们一直在使用 RighScale,他们有 HAProxy 的插入式脚本。哦,除非证明绝对必要,否则我们 [当然] 的最后期限太紧了,无法更换组件。幸运的是,在 AWS 上允许我们并行使用 nginx 测试另一个设置(如果有必要的话),并在稍后一夜之间进行切换。

本页很好地描述了每个 sysctl 变量(在这种情况下,调整了 ip_local_port_range 和 tcp_fin_timeout)。

0 投票
8 回答
6997 浏览

amazon-ec2 - 关于 RightScale 和 Scalr 用于动态 Ec2 实例管理的任何想法

我正在寻找一种成本效益高的工具来管理 Ec2 上的 Web 应用程序。Rightscale 在大狗看来并为此收费。Scalr 看起来是一种更具成本效益的解决方案,但很难找到任何真实的客户体验。

我正在寻找的关键方面是负载均衡器(http 和 https)以及一种在负载增加时自动使额外的 Web 服务器容量在线以及在负载下降时终止实例的方法。

据我所知,很多人都在这里推出自己的东西。我们正在尝试发布一个应用程序,并且真的不想打太多繁重的系统管理员之战。鉴于性能等的重要性,我很高兴能听到来自该领域的建议和经验。

0 投票
1 回答
2002 浏览

http - 为什么 haproxy 不能捕获我的 cookie?

我无法让前端 cookie 捕获在 haproxy 中工作。我的配置中有这个:

然后我使用 nc 直接与服务器对话并发送它:

我得到一个日志行,但是捕获的 cookie 应该在哪里有一个“-”。

0 投票
2 回答
2404 浏览

apache - Apache 处理 SSL 请求并将它们传递给 HAproxy

我正在尝试设置为前端反向代理,Haproxy 将请求转发到后端的 Apache Web 服务器。我的问题是我未能成功使用 Apache 处理 SSL 请求。

我知道 Haproxy 无法处理 SSL 请求,因此我尝试设置 Apache 以接受端口 443 上的客户端请求并将其转发到 Haproxy,然后 Haproxy 将接收请求并将其转发到正确的 Apache 后端 Web 服务器。有没有人成功做到这一点?如果是,您能否提供 Apache 和 Haproxy 配置的示例?

0 投票
1 回答
4632 浏览

ssl - HAProxy 可以在一个 IP 和端口上同时处理 Web 服务器和 SSL VPN 吗?

我需要一个反向代理,通过坐在一个 IP/端口上来支持 Lablz Web 服务器和 SSL VPN Adito(SSL Explorer 分支)。使用 Nginx 无法实现这一点。未能将 Adito 用作通用反向 HTTP 代理。

如果 HAProxy 无法感知 HTTP 流量,它是否可以回退为 TCP 代理?换句话说,如果它的第 7 层检查确定这不是 HTTP 流量,它是否可以退回到第 4 层?

这是我的设置

  • 具有一个公共 IP(弹性 IP)的 EC2 机器。
  • 只有一个端口是开放的——443。
  • Stunnel 位于 443 并将流量传递给 HAProxy(我不喜欢使用 Stunnel,但 HAProxy 还没有完全支持 SSL,这与 Nginx 不同)。
  • HAProxy 必须配置为将一些 HTTP 流量传递到一台服务器(位于 SVN 服务器前面的 Apache 服务器),并将其余 HTTP 流量传递到我们的 Lablz Web/App 服务器。
  • 所有非 HTTP 流量都必须转发到 Adito VPN。
    • 这个流量是:
      • VNC、NX、SMB
      • ...以及 Adito 支持的所有其他协议

我不能依赖源 IP 地址或端口将流量拆分为 HTTP 和非 HTTP。

那么,这样的配置可以在 HAProxy 中完成吗?可以为此使用任何其他反向代理吗?如果我对 HAProxy 的想法不正确,请告诉我,并且可以使用替代方法。

顺便说一句,Adito SSL VPN 很棒,如果此设置有效,我们将能够为 Lablz 开发人员提供出色的一键式单点登录安全 VNC-over-HTTPS 访问他们在云中的盒子。

没有解决方案,但通过 Adito - 请证明我错了。但请不要说 VNC over SSH 更好。是的,VNC-over-SSH 更快、更安全,但也更难(对于我们的目标用户群)设置并假定用户位于允许端口 22 上的出站流量的防火墙后面(并非总是如此)。

此外,Adito 不仅仅是远程访问网关——它是一个成熟的浏览器内 VPN、一个软件分发平台等等。我与 Adito 的人没有联系 - 请参阅我们 Lablz 博客上的 Adito 帖子

0 投票
5 回答
18770 浏览

load - EC2 中的弹性负载平衡

它已经出现了一段时间,但现在亚马逊已经发布了弹性负载平衡(ELB),您对为高流量 Web 应用程序部署此解决方案有何想法?

我们应该替换HAProxy还是将 ELB 作为 HAProxy 前面的免费服务?

0 投票
1 回答
1500 浏览

scalability - HAProxy 和“分片”

我想知道是否有人使用 HAProxy 进行分片。具体来说,我希望能够使用我定义的带有标识符的 cookie,并将任何呈现该 cookie/标识符组合的客户端定向到同一服务器。这似乎是可能的,我的初步测试似乎有效,但我不确定。

我的监听配置如下:

但是,当我使用 Live Http Headers 查看请求标头时,我看不到 mysession cookie 指示它将去哪个服务器,这是我基于前缀操作所期望的。我对 HAProxy 很陌生,所以任何帮助/指导都会很棒!

0 投票
1 回答
14801 浏览

load-balancing - 如何使用 HAProxy 进行粘性负载平衡,并将会话传输到新服务器

我正在使用 appsession 配置元素进行粘性会话。我有 5 个 weblogic 实例,其中 3 个处于活动状态,现在在负载增加时提供负载,我启动了另外 2 个实例。现在 HAProxy 将它们标记为“Helthy”,但不会向其传输任何流量,因为它具有粘性。

如何将现有会话转移到新的 weblogic 服务器。我正在使用 Terracotta 进行会话集群,因此哪个服务器为请求提供服务并不重要。下面是我对 HAProxy 的配置。

0 投票
1 回答
1718 浏览

web-applications - 如何配置 HAProxy 以整合出站应用服务器连接

我想使用我的 HAProxy 服务器来合并出站应用程序服务器请求。我的应用程序与第 3 方、外部服务交互,我希望能够使用单个 IP 地址与这些服务交互。我也希望能够通过 HTTP 和 HTTPS 做到这一点。任何有关执行此操作的配置示例将不胜感激。谢谢