问题标签 [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 回答
2368 浏览

asp.net - 代理背后的安全表单身份验证

我们在负载均衡器上使用 Stunnel(去除 SSL)和 HAProxy - 然后通过 HTTP 向 IIS 发送请求。

我们遇到的问题是我们希望我们的站点 (ASP.NET) 以安全的方式设置 cookie - 即将 requireSSL 属性设置为 true。

当我们设置此属性并向站点发出 HTTPS 请求时,我们收到此错误:

如果请求来自负载均衡器的 SSL,是否可以信任网络服务器?或者这不是问题,因为它只能通过 SSL 访问我们的网站(只有 443 是开放的)?

0 投票
2 回答
26919 浏览

load-balancing - 负载平衡(HAProxy 或其他) - 粘性会话

我正在努力将我的应用程序扩展到多台服务器,并且一个要求是客户端始终与同一台服务器通信(使用了太多实时数据以允许在服务器之间有效地反弹)。

我当前的设置是一个小型服务器集群(使用 Linode)。我有一个使用“平衡源”运行 HAProxy 的前端节点,因此 IP 始终指向同一个节点。

我注意到“平衡源”不是一个非常均匀的分布。使用我当前的测试设置(2 个后端服务器),当使用 80-100 个源 IP 的样本大小时,一台服务器的连接数通常是 3-4 倍。

有什么方法可以实现更均衡的分布?显然,粘性会话禁止“完美”平衡,但 40/60 拆分比 25/75 拆分更可取。

0 投票
4 回答
12994 浏览

php - 使用三台服务器对 PHP Web 应用程序进行负载平衡

我有 2 个 Web 服务器和 1 个用作反向代理或负载平衡器的服务器。2 个 Web 服务器具有真实/公共 IP 以及负载平衡器。负载平衡器服务器尚未配置,因为我没有决定哪个选项最适合我的 Web 应用程序。我知道一个负载均衡器是有风险的,因为“单点故障”但我想使用它。

2 个 Web 服务器包含多个具有相同域和不同子域的 PHP 应用程序/虚拟主机(Apache + fastcgi)。他们都使用会话、cookies,其中一些需要 SSL。我的主要目标是纯粹将传入连接分成两半并将它们转发到 2 个 Web 节点。如果一个网络节点离线,另一个应该接受所有连接。我认为如果需要,我们可以使用 memcache 进行会话共享。

我阅读了有关 Nginx、HaProxy 和我在网上可以找到的任何其他应用程序的信息。但我无法决定,因为:

1)我有 1 台服务器可以用作负载均衡器,但我在网上找到的所有配置都需要 2 个负载均衡器节点。2) 我不确定应该在哪里安装 SSL 证书(在负载均衡器或 Web 节点上),以及使用 HTTPS 连接时哪种解决方案最好。

需要任何帮助/想法,非常感谢。

0 投票
1 回答
2211 浏览

amazon-ec2 - 让 EC2 实例自动加入 HAProxy 的最佳实践是什么?

我们正在努力将我们的 EC2 架构扩展到我们想要管理自己的负载平衡的程度。我们目前在 HAProxy 上配置了一系列机器来进行基本的负载平衡,但我们正在寻找“最佳实践”,即让新实例上线并自动(或几乎自动)加入 HAProxy。

理想情况下,我们会监控系统上的负载,或者依靠几年的分析数据来制定一个粗略的时间表,当我们达到阈值或预定时间时,让一个进程启动一个新实例,让那个新节点连接到我们的 HAProxy 机器上的系统,将其主机名写入配置并重新加载 HAProxy,使其成为池的一部分。

一旦我们变得足够大,需要多个区域覆盖,我们就会考虑使用 Amazon 的 ELB,但在那之前,我们需要一个简单的设置,可以从 HAProxy 中添加/删除机器。

我知道我们可以支付一些服务来管理这些东西,但 Scalr 似乎将我们限制在非常特定的实例类型上,而且 Rightscale 太贵了,所以像许多其他人一样,我们正在寻求推出自己的解决方案。

不幸的是,那些推出自己的解决方案的人似乎对他们的过程有点沉默。

0 投票
1 回答
392 浏览

ruby - 基于机架的 Web 服务的服务和负载平衡?

作为我们架构的一部分,我们使用仅限内部的基于 HTTP 的 Web 服务来访问需要跨应用程序共享的数据。目前它们被实现为 Sinatra 应用程序。

在每台 Web 服务机器(托管在 EC2 中)上,我们使用 haproxy 对请求进行负载平衡,并使用精简来为它们提供服务。

我很好奇什么被认为是当前为这些类型的应用程序提供服务的“最佳实践”,尤其是在没有静态内容的情况下。

在此设置中使用 nginx 和/或 unicorn 有什么好处吗?我已经看到了一些关于同时使用 nginx 和 haproxy 的建议,但我不确定这会增加什么价值。

0 投票
1 回答
6046 浏览

load-balancing - Haproxy:当 maxconn 被命中时发送自定义 http 响应

如果负载均衡器达到 maxconn,是否可以从 Haproxy 发回自定义 http 响应?

如果服务器忙,我的意图是发送等效的忙音(但不是 503)。

0 投票
1 回答
1517 浏览

drupal - Chrome 和 Firefox 自动重定向到某个站点上的 https

我有一个在 nginx 和 php-fpm 上运行的 drupal 站点,并在多个服务器之间实现了 haproxy 平衡。

我为 haproxy 设置了两个服务:http 和 https。

如果我去http://subdomain.domain.com,它工作正常。
如果我去https://subdomain.domain.com,它也可以正常工作。如果我然后返回 http,它现在会重定向到 https。这发生在 Firefox 和 chrome 中,但不在 IE 中。

如果知道它存在,是否有一些设置会自动重定向到 https?也许如果设置了安全标头?

我尝试查看 LiveHTTPHeaders,但此时它仅显示 https 部分。
我尝试在 Chrome 中查找,它说:

它似乎在进行重定向,但没有说明原因。

我尝试使用 Wireshark 进行嗅探,但无法理解它,因为我无法让 SSL 解密工作(我有密钥)。

0 投票
5 回答
23933 浏览

tcp - 使用代理复制 TCP 流量

我需要从一台机器(端口)和两台不同的机器(端口)发送(重复)流量。我还需要处理 TCP 会话。

在开始时我使用了em-proxy,但在我看来开销相当大(它超过了 CPU 的 50%)。然后我安装了haproxy并设法重定向流量(不重复)。开销是合理的(小于 5%)。

问题是我不能在 haproxy 配置文件中说以下内容:
- 监听特定地址:端口以及您在两台不同机器上发送的任何内容:端口并丢弃其中一台的答案。

用于此的 Em-proxy 代码非常简单,但在我看来 EventMachine 会产生很多开销。

在我挖掘 haproxy 代码并尝试更改(重复流量)之前,我想知道那里有类似的东西吗?

谢谢。

0 投票
1 回答
1902 浏览

tomcat - 使用 Tomcat 配置 Haproxy 以使用上下文

我是 haproxy 的新手,我正试图弄清楚如何做一些看起来很简单的事情。我想代理一个tomcat上下文。

例如http://bobsautomotive.com:8080/HelloWorld

这是我的 haproxy 配置:

这可以很好地访问 Tomcat 主页。但是,如果我尝试将其更改为使用以下上下文:

服务器一 tomcat.bobsautomotive.com:8009/han cookie tomcat1 check

它不会工作...

有任何想法吗?谢谢

0 投票
2 回答
1597 浏览

php - 我可以以编程方式强制对文件的更改传播到所有 NFS 客户端吗?

我有一个用 PHP 构建的 CMS,它将页面列表、页面导航结构和页面内容存储在磁盘上的文件中。此应用程序托管在 haproxy 服务器后面的 Apache/php-fpm 服务器集群上。这些服务器通过 NFS 从中央文件服务器挂载 Apache DocumentRoot 目录,因此从 CMS 所做的所有更改都会写入 NFS 共享上的文件。

我发现,除非我使用该noac选项挂载 NFS 共享,否则所做的更改可能需要 5-10 秒才能传播到集群中的所有服务器;这意味着当多个更改快速连续进行时,最终更改有时会覆盖较早的更改,因为最终更改可能会转到尚未收到较早更改的服务器。

但是,在使用noac挂载选项时,访问者端访问内容会有2-5秒的延迟,这是完全不能接受的。

有没有办法以编程方式强制对 NFS 共享上的文件进行更改以传播到所有客户端,或者让所有客户端刷新该文件的缓存?