我们需要一些比 ELB 提供的更高级的功能(主要是 L7 检查),但是如何使用 EC2 使用诸如 haproxy 之类的东西来处理诸如心跳和高可用性之类的事情并不明显。我们很有可能在集群中需要 3 个或更多 haproxy 节点,因此两个节点之间的简单心跳是行不通的。
似乎在 haproxy 节点前面有一个心跳层是可行的方法,可能使用 IPVS,但是随着 EC2 集群的变化处理配置更改(通过有意的更改,如扩展,或无意的,如丢失EC2 节点)似乎很重要。
优选地,该解决方案将跨越至少两个可用区。
回答问题:不,会话没有粘性。是的,我们需要 SSL,但理论上这可以完全由另一个设置处理 - 我们能够将 SSL 流量定向到与非 SSL 流量不同的位置。
load-balancing heartbeat haproxy amazon-ec2 amazon-web-services
对于那些使用 HAProxy 和 stats papge (haproxy?stats) 的人,我该如何解释这个页面?没有像样的解释。
例如:哪个会话列显示当前与后端的活动连接数?会话或会话率?
我正在寻找负载平衡和故障转移策略的解决方案,主要用于大型 Web 应用程序。我们有许多服务需要平衡,例如 web、MySQL 和许多其他基于 HTTP 或 TCP 的服务。但我不确定它们的优缺点是什么,我应该选择哪个。
当后端服务器(后端)发送 HTTP 503 代码时,我希望 haproxy 使用它自己的 503 文档页面。是否可以?
见过类似“监控失败”的情况,但不知道如何将其添加到前端。
我正在测试一个新的网络服务器设置,它有几个问题。本质上,我们有一个网络服务器,其中代码使用远程 IP 来处理一些有趣的事情,还有一些 apache 目录被保护到某些特定的 IP(我们的办公室等)。
然而,我们只是把它放在 ha_proxy 后面,所以我们可以考虑添加更多的应用程序服务器,但是现在远程 IP 总是作为代理 IP 而不是真正的远程用户。这意味着我们无法到达某些位置,并且我们的应用在用户 IP 很重要的地方表现得有点奇怪。
我们的配置如下:
global
maxconn 4096
pidfile /var/run/haproxy.pid
daemon
defaults
mode http
retries 3
option redispatch
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen farm xxx.xxx.xxx.xxx:80
mode http
cookie GALAXY insert
balance roundrobin
option httpclose
option forwardfor
stats enable
stats auth username:userpass
server app1 xxx.xxx.xxx.xxx:80 maxconn 1 check
Run Code Online (Sandbox Code Playgroud) 我有以下设置:
(internet) ---> [ pfSense Box ] /-> [ Apache / PHP server ]
[running HAproxy] --+--> [ Apache / PHP server ]
+--> [ Apache / PHP server ]
\-> [ Apache / PHP server ]
Run Code Online (Sandbox Code Playgroud)
对于 HTTP 请求,这很好用,请求被分发到我的 Apache 服务器就好了。对于 SSL 请求,我让 HAproxy 使用 TCP 负载平衡分发请求,但是它可以工作,因为 HAproxy 没有充当代理,它没有添加X-Forwarded-ForHTTP 标头,并且 Apache/PHP 服务器不知道客户端的真实IP地址。
所以,我stunnel在HAproxy前面加了,读到stunnel可以加X-Forwarded-ForHTTP头。但是,我可以安装到 pfSense 中的包没有添加这个标头......而且,这显然会扼杀我使用 KeepAlive requests 的能力,我真的很想保留它。但是扼杀了这个想法的最大问题是 stunnel 将 HTTPS 请求转换为普通的 HTTP 请求,所以 PHP 不知道 SSL 已启用并试图重定向到 SSL …
我想在 HAProxy 终止 SSL,对标头进行一些操作,重写 URL 并重新加密流量并作为 SSL 发送到后端服务器?
我似乎找不到办法做到这一点。我可以完成常规的 SSL 终止,并将普通的 HTTP 请求发送到后端。但我需要将 SSL 发送到后端。
我想具有以下功能:
除非我在 haproxy 端终止 SSL,否则我无法完成 URL 重写。
非常感谢这里的好人的任何帮助。
对于那些不知道 Suche.org 是什么的人来说,它是一个在 SSL 实验室的每个类别中都获得完美 A+ 评级的网站:(Suche.org SSL 实验室结果)。当我打开另一张关于ECC 证书在 Chrome 中不起作用的票时,我意识到了这个网站,其中一个响应者以该网站为例。
让我感到困惑的是,虽然Protocol Support报告的部分说该网站仅使用 TLSv1.2 ......
TLS 1.2 Yes
TLS 1.1 No
TLS 1.0 No
SSL 3 No
SSL 2 No
Run Code Online (Sandbox Code Playgroud)
显然情况并非如此,因为在该Handshake Simulation部分下,它显示一些模拟的旧客户端正在使用 TLSv1.0 进行连接......
Android 4.0.4 EC 384 (SHA256) TLS 1.0 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA ECDH secp521r1 FS
Android 4.1.1 EC 384 (SHA256) TLS 1.0 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA ECDH secp521r1 FS
Android 4.2.2 EC 384 (SHA256) TLS 1.0 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA ECDH secp521r1 FS
Android 4.3 …Run Code Online (Sandbox Code Playgroud) 我正在设置一个使用虚拟机(可能是亚马逊,但不是一成不变的)托管的应用程序,这将需要 HTTP 负载平衡和负载平衡大量(如果可能,50k 左右)的持久 TCP 连接。数据量并不高,但更新频繁。
现在我正在评估负载均衡器,并且对 HAProxy 的架构有点困惑。如果我使用 HAProxy 来平衡 TCP 连接,是否所有产生的流量都必须流经负载平衡器?如果是这样,另一种解决方案(例如 LVS 甚至 nginx_tcp_proxy_module)是否更合适?