说我有3个VPS节点与Linode在一个网站上提供stream量。 Linode自己提供节点平衡解决scheme 。 但是我使用CloudFlare,想知道如果有必要使用Linode的节点平衡器,如果CloudFlare的DNS负载平衡可以为我做,那么我阅读他们的体系结构的博客文章 。 使用Linode的负载均衡器而不是使用CloudFlare的DNS负载均衡器有什么好处吗?
比方说,我有2个服务器 – SA和SB。 是否可以configurationHAProxy的工作是这样的: 所有连接进入SA – > SA下降 – > HAProxy将所有连接切换到SB – >直到SB没有closures – 即使再次连接到SA,连接也不会连接到SA – > SB断开 – > HAProxy切换到SA .. 。 简而言之,我希望HAProxy仅在当前服务器出现故障时切换。 也许我应该用别的比HAProxy?
我正在使用Rackspace负载平衡器,它使我能够在pipe理面板中设置我的ssl键/ pem。 一切工作正常,我可以使用http和https协议。 但是,如果我尝试使用以下方法将httpredirect到https: server{ listen *:80; server_name mydomain.com www.mydomain.com; rewrite ^ https://mydomain.com$request_uri? permanent; …我得到一个redirect循环。 我意识到我没有听443端口,但那是因为负载平衡器为我处理。 我也尝试包装重写if ($scheme ~* http){无效。 我的问题的另一部分是,我想从url中删除www,我可以做一个单一的重写? 上面的重写不应该照顾这个吗? 谢谢你的帮助!
我需要一种方法来跟踪和限制networking会话到一个Web应用程序。 “会话”被粗略地定义为浏览所述networking应用的页面的单个用户。 我认为可以翻译成: 会话被定义为元组<clientIP,vHost>或者<clientIP,serverIP,serverPort>或<cookie,vHost> ,取决于层和可用数据 会话在用户将authentication数据发送到定义的loginURI后开始 会话在用户点击定义的注销URI后结束 如果在客户端请求最后一个对象之后指定的超时已到期,则会话结束 在达到指定的会话限制之后,下一个用户应该被定向到一个自定义错误页面。 我还需要一种方法来跟踪当前的会话数量,以便进行监控,并能够将监控服务器列入白名单(这将定期向Web应用程序发出查询)并免除限制。 我能与之合作的是: RadWare AppDirector ,其中Web应用程序具有已定义的自己的场,并且正在以反向代理模式运行 Apache 2.2 SLES 11 SP2 我宁愿不涉及一个额外的代理服务器,虽然会考虑如果没有其他选项。 所有这一切背后的基本原理是,上述的networking应用程序很容易被超载,并开始拒绝不请求的请求,使工作中的用户(通常)在进程中丢失了input数据。 通过在超负荷条件不太可能的情况下指定限制,我们希望创build一个明确的故障条件,如果负载可能高峰,用户将被告知以后返回。 编辑 :Web应用程序是第一层(呈现层,在Apache vHost中作为CGI代码实现)的三层实现,它非常简单,显然仅限于基本的error handling和请求应用程序服务器之间的负载平衡。 它不会在它运行的Web服务器上施加任何重要的负载 – 这就是为什么我们只是在AppDirector场中以故障转移模式(无负载平衡)运行它,这应该有点简化。 除此之外的一切对我们来说基本上是一个黑盒子 – 在数据层我们有一个MSSQL数据库,但几乎不可能从供应商那里得到关于表结构的任何有意义的信息。 应用程序服务器是封闭的,供应商使用了相当全面的实现框架,但似乎无法回答更简单的与操作相关的问题。
我们正试图devise一个能够处理超过64k的websocket的架构。 我们首先尝试与亚马逊ELB,但其devise不允许意外的交通高峰或websocket。 (TCP模式意外地超时了websockets) 使用HAProxy,这些限制不适用,但我们将被限制在HA和后端服务器之间维护的约64k个WebSockets。 想到多种解决scheme: 多个HAProxy实例,负载平衡与DNS(Route53有一个加权选项) 两个HAProxy实例Keepalived,多个内部IP地址(不知道它是否可行) 有没有更好的方法来做到这一点?
我目前使用DNS循环进行负载平衡,这很好。 logging看起来像这样(我有一个120秒的TTL) ;; ANSWER SECTION: orion.2x.to. 116 IN A 80.237.201.41 orion.2x.to. 116 IN A 87.230.54.12 orion.2x.to. 116 IN A 87.230.100.10 orion.2x.to. 116 IN A 87.230.51.65 我了解到,并不是每个ISP /设备都以同样的方式处理这样的响应。 例如,一些DNS服务器随机轮换地址,或者始终循环地址。 有些只是传播第一个条目,另一些则通过查看IP地址来确定哪个是最好的(区域性的)。 但是,如果用户群足够大(分布在多个ISP等),则平衡得相当好。 从最高到最低的服务器差异几乎没有超过15%。 但是现在我遇到了一个问题,即我正在向系统中引入更多的服务器,并不是所有的服务器都具有相同的function。 我目前只有1 Gbps的服务器,但我想用100 Mbps和10 Gbps的服务器。 所以我想要的是我想介绍一个10 Gbps的权重为100的服务器,一个权重为10的1 Gbps服务器和一个权重为1的100 Mbps服务器。 我之前添加了两次服务器,为他们带来了更多的stream量(这很好,带宽几乎翻了一番)。 但是,向DNS添加一个10Gbps的服务器100次是有点荒谬的。 所以我想到了使用TTL。 如果我给服务器A 240秒TTL和服务器B只有120秒(这大约是用于循环的最小值,因为如果指定较低的TTL(所以我听说过),许多DNS服务器设置为120)。 我认为这样的事情应该发生在理想的情况下: First 120 seconds 50% of requests get server A […]
我们为越来越多的客户端运行一个为Web API提供服务的Web应用程序。 首先,客户端通常是家庭,办公室或其他无线networking,将分块的http上传到我们的API。 我们现在已经开始处理更多的移动客户端。 文件从几个k到几个演出,分解成更小的块,并重新组装在我们的API。 我们目前的负载平衡是在两层进行的,首先我们使用循环DNS为我们的api.company.com地址宣传多个Alogging。 在每个IP上,我们托pipe一个Linux LVS: http : //www.linuxvirtualserver.org/,load-balancer查看请求的源IP地址,以确定将哪个API服务器连接到该连接。 这个LVS框configuration有心跳接pipe外部VIP和内部网关IP。 最近,我们看到了两个新的错误条件。 第一个错误是客户端在振荡或者从一个LVS迁移到另一个LVS的时候,中间上传。 这反过来导致我们的负载均衡器失去了持续连接的跟踪,并将stream量发送到新的API服务器,从而打破了跨两个或更多服务器的分块上载。 我们的目标是为我们的api.company.com(我们已经设定为1小时)的Round Robin DNS TTL值提供下游caching名称服务器,操作系统caching层和客户端应用程序层的荣誉。 这个错误发生在我们上传的大约15%。 我们看到的第二个错误很less见。 客户端将启动stream量到一个LVS箱并被路由到它后面的realserver A. 此后,客户端将通过新的源IP地址(LVS箱不能识别)进入,从而将正在进行的通信量路由到也位于该LVS之后的真实服务器B. 鉴于我们的架构如上所述,我想知道什么是人们的更好的方法的经验,这将使我们能够更好地处理上面的每个错误情况? 编辑5/3/2010: 这看起来像我们所需要的。 对源IP地址加权GSLB哈希。 http://www.brocade.com/support/Product_Manuals/ServerIron_ADXGlobalServer_LoadBalancingGuide/gslb.2.11.html#271674
我们有一个目前拥有2个应用程序的networking服务器场 – 两个应用程序都在所有服务器上运行。 我们想分割这个,所以我们有一个专用的服务器场为每个应用程序(我们有很好的理由)。 我们希望在所有的服务器前都有一个负载均衡器,这个负载均衡器会根据主机名将stream量路由到正确的服务器场,但是我们希望维护到服务器的SSL。 看来我们提供的路由器不这样做。 我很欣赏,如果没有SNI,这是不可能的,但我们预计几乎所有的stream量的SNI指标。 现在我是程序员,而不是networking人员,但是当新的SSL连接请求进入时,路由器不能检查SNI头,并且路由到正确的场。 假设传入的SSL连接由{source IP:source port}标识,那么对于后续传入的数据包(如果SNI仅存在于第一个数据包中),它不能记住这一点吗? 据我可以告诉Haproxy这样做,但似乎硬件负载平衡器不。 这是有什么理由的,还是我们应该推动的? (对于最后一名在XP上使用不包含SNI的IE,我们希望将stream量发送到旧的农场,并在必要时pipe理代理到新的农场。
目前,我一直在使用(D)DoS-Deflate来pipe理许多远程服务器上的这种情况,以及用于负载testing的Apache JMeter 。 总的来说,它一直工作得很好,虽然我想听听一些从事这种情况的专家的build议比我更长。 我确信那些在networking托pipe业务中工作的人已经有了处理这些情况的公平份额。 所以我想知道在企业环境中应对这些问题的最佳实践是什么?
我使用2个全局转发规则(HTTP和HTTPS)在Google Compute Engine上设置了HTTP / HTTPS负载平衡。 每个规则都指向一个HTTP协议的后端服务。 我想要所有的请求http://*去https://* 。 由于负载平衡器通过HTTP与后端服务进行通信,我不认为我可以在后端服务上获得nginx来发回301 。 我已经尝试了十几个小的谷歌计算调整,他们都结束了谷歌计算返回502 。 我确信其他人之前已经设置好了。 任何提示或指针在正确的方向非常感谢。