我有一个Amazon Elastic Load Balancer。 我无法将域apex – domain.com设置为ELB,因为Amazon不提供IP。 如果我: build立一个新的EC2实例(它有自己的IP) 设置从EC2到ELB的反向代理(HAProxy?Apache?Nginx?) 将我的DNS指向代理的新EC2实例 我将面临什么后果? 这是否使ELB毫无意义,因为我的单一EC2实例是一个失败点? 如果ELB中的每个实例每天都获得100 GB的带宽,EC2代理是否能够处理它?
这是我想要完成的设置 所以,我试图完成的是:一个用户去10.0.0.1它传递给任何负载均衡pipe理请求。 然后我想要清漆实际上处理请求。 这是我的ha.cf文件: debug 3 debugfile /var/log/ha-debug logfile /var/log/ha-log bcast eth0 keepalive 2 warntime 5 deadtime 15 initdead 30 udpport 694 udp eth0 auto_failback yes node loadb1 node loadb2 *这在loadb2上是一样的。 另外我有debugging启用testing的目的。 在生产准备就绪时将被删除。 这里是haresources loadb1 IPaddr::10.0.11.200/32 varnishd *同样,在loadb2(我也试图这样做,使心跳不能pipe理除IP以外的任何东西,所以没有“varnishd”在最后的haresources) 我的清漆configuration如下: backend server1 { .host = "10.5.0.111"; .probe = { .url = "/"; .interval = 5s; .timeout […]
假设一个低估的webapp保持每个用户的一个连接(例如:使用彗星的聊天应用程序,长池等等)。 我怎样才能平衡这样的东西,以超越单机(C10 [0] K)的连接限制? 我可以看到循环DNS作为解决scheme,想知道还有什么可能的…
我正尝试使用nginx来负载平衡一些下游应用程序服务器,并且如果所有下游服务器都处于脱机或无响应状态,则显示“失败鲸鱼”样式页面。 不幸的是,nginx的文档说,你不能在upstream模块中使用backup指令和ip_hash指令,所以我一直在想办法替代。 现在,我的configuration中的相关块是: upstream appservers { ip_hash; server srv1:8080; server srv2:8080; } server { listen 80; location / { proxy_pass http://appservers; proxy_set_header X-Scheme $scheme; proxy_connect_timeout 5s; error_page 502 503 504 http://failwhale.myapp.com; } } 问题是,如果我closures了两个应用程序服务器,当nginx返回一个502(错误的网关)错误,它似乎使用默认的502错误页面(纯白色的ish)而不是redirect到http:// failwhale。 myapp.com (这也是由nginx服务,绝对是)。 有没有人知道我做错了什么,或者如果这应该是我希望的工作? 如果没有,还有什么可以做的?
我已经非常迅速地扩展了服务,并且在平衡负载的方式中发现了一个问题。 我的服务器不需要一个完美的分布,所以我只是简单地使用循环DNS设置来引导客户端到服务器。 然而,不要在服务器之间反弹客户端,而且我发现在Ubuntu上运行他们的软件的许多客户端不会caching他们收到的DNS结果,所以他们不断地改变他们与之通信的服务器。 有没有办法强制DNSlogging坚持到底,还是必须开始考虑软件或硬件负载平衡器? 我担心的是负载均衡器的延迟。 如果LB在美国,客户是直接到英国,我的理解是,客户将永远不得不连接到美国负载平衡器,然后redirect到英国。
所以我得到了一个独特的问题。 我们的应用程序旨在使用一次性使用的特殊链接来服务大量文件。 我们一直在玩ELB,但注意到一个有趣的“错误”,如果你开始得到很多的stream量或负载,它看起来像ELB将尝试扩大和重新连接。 这反过来导致我们的系统在下载完成之前使链接无效。 所以很快我把一个nginx的代理服务器来testing这个问题,并在该设置中的连接不会被取消,但我看到性能下降约2/3至1/2。 看到我不能在实例中投入更多的带宽,因为我被locking到AWS给我的替代品有什么? 也许有一个configuration与实例/ nginx我做得不对,或者我需要移动到像RR DNS的东西,并付出代价。
我的组织目前拥有2个数据中心,从中可以托pipe公司网站,Akamai提供负载平衡和其他CDN服务。 现在,我被告知,如果我们在1个数据中心的服务器堆栈停止响应,Akamai将自动将传入stream量路由到备用数据中心。 问:现在我的问题是,导致Akamai启动此路由的触发器是什么? 即。 Apache Http服务器是否必须停止在端口80上侦听/响应,否则将返回非2XX / 3XX / 4XX代码呢? (即让应用程序服务器返回HTTP 500的) 如果是这样的话,是否可以将其configuration为以上下文为基础进行工作,这样,如果http://www.example.com/search发生故障(应用程序服务器返回HTTP 500),到/ search的stream量将被路由到其他位置,但所有其他stream量仍然击中两个堆栈? 问:还有,服务恢复后多长时间才会开始stream量回传?
我试图做一个负载平衡使用Apache,但是当我到我的(本地)主机“负载” 没有find 我已经加载了这些mods LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule status_module modules/mod_status.so 这是我的虚拟主机: ServerName load ProxyRequests off <Proxy *> Order deny,allow Allow from all </Proxy> <Proxy balancer://wwwCluster> BalancerMember http://localhost:1001 loadfactor=1 BalancerMember http://localhost:1002 loadfactor=5 BalancerMember http://localhost:1003 loadfactor=3 Order Deny,Allow Deny from none Allow from all ProxySet lbmethod=byrequests </Proxy> ProxyPass /balancer balander://wwwCluster 平衡器pipe理器工作得很好SetHandler balancer-manager允许所有
我正在Rackspace上build立networking服务器的networking。 我正在寻找做两个一组的4台服务器。 见下图。 我的问题是,如果我有服务器A和服务器B作为负载平衡器后面的A镜像,我知道我可以得到这个工作。 我的问题是,如果我有第二套托pipe不同网站的两台服务器,我可以在相同的负载平衡器后面有服务器吗? 目前,LB被设置为循环法,当我打开网站abc.com时尝试这样做,有时它会显示来自服务器C或D之一的默认网页。
我正在寻找一种方法来将Apache设置为高可用性。 这个想法是有一个服务于相同网站的2个Apache服务器集群。 我可以使用循环DNS设置每台服务器的IP地址,以便将每个请求随机发送到群集中的一台服务器(我不太在意负载平衡,尽pipe可能会出现这种情况稍后播放)。 我已经build立并使用了多个Apache VM服务器(分布在多个物理服务器上)服务于网站,并且使用循环DNS,并且工作正常。 SQL数据库是在高可用性集群中使用MariaDB设置的,Web数据(HTML,JS,PHP脚本,图像,其他资源)存储在LizardFS中,会话也存储在共享位置。 这一切都运行良好,直到群集中的某个服务器因为任何原因而变得不可访问。 然后,一个百分比的请求(大致上是服务器被closures的次数除以集群中的服务器总数)是没有答案的。 以下是我考虑的选项: 自动DNS更新 有一些过程来监视Web服务器的function,并从DNS中删除任何closures的服务器。 这有两个问题: 首先,尽pipe我们可以将TTL设置为一些非常低的数字(比如5秒),但是我听说less数DNS服务器会强制实现比我们更高的TTL。 而且,有些浏览器(即Chrome)会将DNScaching不less于60秒,而不pipeTTL设置如何。 所以,即使我们做得好,在DNS更新的情况下,一些客户可能无法访问站点一段时间。 其次,监控集群function的程序 并更新DNSlogging成为新的单点故障。 我们 可以通过将多个监视器分布在多个监视器上来解决这个问题 系统,因为如果他们都检测到问题,他们都做出相同的DNS更改,那么不应该导致任何问题。 uCarp /心跳 使被访问的IP地址在循环DNS虚拟中,并且在服务器closures的情况下将它们重新分配给从服务器中断下来的服务器。 例如,server1的VIP是192.168.0.101,server2的VIP是192.168.0.102。 如果server1发生故障,则192.168.1.102将成为server2上的附加IP。 这有两个问题: 首先,就我所知,uCarp / Heartbeat特别监视对等设备,以便无法访问,例如,如果对等设备无法被ping通。 当这种情况发生时,它接pipe被击落的对等体的IP。 这是一个问题,因为Web服务器可能无法为请求提供服务的原因更多,而不仅仅是在networking上不可访问。 Apache可能已经崩溃,可能存在configuration错误或其他原因。 我想要的标准是“服务器不按要求提供页面”,而不是“服务器不能ping通”。 我不认为我可以在uCarp / Heartbeat中定义。 其次,跨数据中心不起作用,因为跨数据中心的每组服务器都有不同的IP地址块。 我不能在数据中心之间有一个虚拟IP浮动。 跨数据中心运行的要求(是的,我的分布式文件系统和数据库集群可以跨数据中心使用)不是必需的,但是这将是一个很好的补充。 题 那么,关于如何处理这个问题的任何想法? 基本上,高可用性的圣杯:没有单点故障(无论是在服务器,负载平衡器还是数据中心),并且在切换时几乎不存在停机时间。