我最近为一家小公司build立了一个多WAN连接,因为他们在任何可能的ISP的末端,服务确实停止了,他们真的依赖于他们的互联网连接。 我正在使用CISCO RV042,它可以在故障切换或负载平衡模式下工作。 使用负载平衡似乎是合乎逻辑的 – 只要你有两个连接,为什么不使用它们。 但是,负载平衡会导致我将要描述的问题。 数量惊人的Web服务显然build立了多个TCP连接,然后当这些连接来自不同的IP地址(当他们通过多个WAN接口进行负载平衡时)失败。 最近,这家公司银行的新电子银行界面显然是这样做的。 例如,在电子银行连接的情况下,简单地变得不可能login到服务。 其他服务提供奇怪的错误,或只是不正常工作。 我可以通过将RV042中的每台个人计算机绑定到一个WAN接口来纠正这个问题。 但是,这意味着使用静态IP地址而不是DHCP,所以这不是一个好的解决scheme。 我可以通过在故障切换模式下运行RV042来纠正这种情况,以便在任何给定时间只有一个WAN正在使用。 也不理想,因为其他连接基本上没有使用。 当然,也可以把问题报告给各种networking服务。 祝你好运。 有很多公司与多万连接。 当然有更好的解决办法? 任何人?
我一直在尝试诊断我们在生产服务器上遇到的问题。 我们有一台运行NGINX的服务器作为负载均衡器,负责在四台应用服务器之间拆分请求。 在testing网站的时候,我们每天至less会有几次错误,但是我们得到的错误只能持续几秒钟。 通过错误日志和访问日志,以及新的遗物和我们的托pipe服务的graphics,我已经注意到了一些事情… 每天几次,负载平衡器上的磁盘突然大量跳跃。 我很确定这是由于很短的时间内写入访问日志的请求太多了(昨天已经超过了300MB,其中大部分是在很短的时间内)……几乎如果一堆请求被阻塞,堆积,然后同时吐出。 另外,偶尔我会在错误日志中得到“768工作者连接是不够的…”。 我猜我只需要提高这个限制,但我不知道多less,或者我怎么能find最大的工作。 我不确定这两个问题是否连接在一起,或者如果其中一个导致我们的随机500错误。 任何有关进一步诊断的见解或build议将不胜感激!
我有一个3 DSL负载平衡器 ,比如1MB / seg的下载速度。 为了检查 连接到这个负载平衡器的任何计算机的 正确行为 ,并看看是否所有3条线路上的stream量(至less下载)是多路复用的,我做: curl -o /dev/null http://speedtest.wdc01.softlayer.com/downloads/test500.zip 我等待获得完整的1MB / seg的下载速度,如: % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 48 500M 48 241M 0 0 947k 0 0:09:00 0:04:21 0:04:39 1007k 如果速度不是全速 (1MB / seg),我会取消curl命令并重新启动它,直到我终于得到3个以1MB / seg速度运行的curl控制台。 只要这是我的最大下载速度,那么我认为平衡负载是正常的。 有更好/更简单的方法吗? 我发现了一些方法来testing必须从自己的负载平衡器执行的负载平衡。 […]
我开始使用nginx与多个后端通过使用upstream指令。 我希望nginx添加一个响应头,描述哪个后端服务器被用来提供这个请求。 这样的事情会做: X-Backend-Server: localhost:8000 我configuration了ip_hash作为负载平衡机制。 有没有办法configurationnginx来做到这一点? 谢谢!
我有一台运行Docker + NodeJS应用程序的服务器和一台运行nginx的负载平衡器。 在升级到两台服务器之前,我想尝试复制负载均衡器和现有服务器的stream量统计信息。 (这两款机器在Digital Ocean都是5美元) 当我直接在服务器上运行loader.io时,我留下了深刻的印象,那就是每秒可以支持2000个请求,进行1分钟的testing。 但是,当我使用loader.io对nginx,代理到另一台服务器,它简单地放弃了每秒约300个请求。 由于一台机器似乎能够处理负载,我不确定问题是什么。 我会认为这是我的nginx.conf,但我可以使用一些指针来优化它。 nginx.conf: http : //pastebin.com/MkX8P4eh
我使用Nginx来负载均衡在多个Node.js实例中运行的websocket应用程序。 当有成千上万的活动连接时,单个消息广播可以使节点在几秒钟内旋转。 在此期间,Node不会处理传入的连接。 即使在服务器负载很重的情况下,为了保持响应的外观,我希望有一个备用的进程,只有在别人没有足够快的响应时才能使用。 我认为将一个Node实例标记为“备份”将起作用: upstream nodejs_backends { least_conn; server 127.0.0.1:5001; server 127.0.0.1:5002; server 127.0.0.1:5003; server 127.0.0.1:5004; server 127.0.0.1:5005; server 127.0.0.1:5006; server 127.0.0.1:5007; server 127.0.0.1:5008 backup; } 备份实例很less接收请求。 看起来像Nginx正在一个一个的通过上游服务器。 备份服务器只有在所有其他服务器都尝试过的情况下才能到达。 由于使用的是least_conn,所以它们会比第一个更加蜂拥而至。 Nginx应该放弃最初尝试并使用备份服务器。 但我不知道如何使它在我使用的Nginx(1.4)版本中发生。 任何帮助或build议,将不胜感激。
经过长时间的search,我找不到解决scheme或path来解决我的问题,同步启动Apache和后端服务器。 我有一个Apache2使用LoadBalancer与mod_jk,平衡请求4后端服务器使用JBoss和AJP协议。 所以所有的configuration工作得很好,但我有一个与Apache同步和JBoss应用程序启动时间的小问题。 在启动应用程序之前,JBoss已经启动并接受了AJP端口中的连接,所以当JBoss节点已经在Apache LB中使用时,应用程序还没有可用,并且当JBoss启动或者当我需要replace时,我有一段时间的失败请求应用程序的版本。 我知道有可能从LB删除节点,并在节点之后我可以返回相同的LB,所以我的问题是,是否有可能使用URL检查或configurationJBoss只有部署所有应用程序后听AJP端口或其他选项,我不需要直接从LB删除节点,当相同的启动,或在JBoss服务器没有closures,但只有应用程序是closures的情况下? 我看到JK中的参数fail_on_status,在这种情况下是唯一的select吗? 任何经验将非常感激。 谢谢
默认情况下,Nginx的upstream指令使用Round-Robin将请求分发给后端realserver,并按权重设置服务器的weight 。 但是我没有看到任何有关ip_hash是否也适用于ip_hash 。 有些人认为weight不适用于ip_hash ,但我已经在太多的博客文章中看到过这个例子。 问题 那么nginx-sticky-module呢? 严格使用cookie粘贴来分配请求,忽略重量或weight Nginx首次处理客户请求?
我有一个在同一图层中运行的两个不同节点应用程序的Opsworks堆栈。 其中一个应用程序需要进行负载平衡,因为它将被大众访问,而另一个只能偶尔被第一个访问,所以不需要负载平衡。 从我看过的文章看来,在Opsworks中,一个图层是负载均衡的,而不是一组定义的实例。 Opsworks不允许我在同一个堆栈中创build第二个node.js图层,所以我不能将应用程序分开并在其中一个负载平衡。 我的猜测是,我不应该有这2个应用程序在同一个堆栈中,或者我应该通过ec2进行负载平衡,我相信我可以设置ELB在一个层的实例子集上运行。 这些是正确的,还是有其他的答案?
我有一个webapp部署在4个jboss实例,并有一个Apache 2.2.15(mod_proxy,libs:DAV / 2 mod_ssl / 2.2.15 OpenSSL / 1.0.1e-fips mod_jk / 1.2.31)webserver做负载均衡。 应用程序使用粘滞会话,有时长时间运行的请求会将请求负载平衡器成员置于错误状态,原因是请求超时,并且将此成员上的会话所产生的所有其他请求redirect到另一个jboss,并且由于没有会话用户在另一台服务器上再次出现在login屏幕上。 从我一直在阅读它注意到,如果我将BalancerMember上的重试参数更改为0,这不会再发生。 这是正确的,还是我需要改变另一件事? 收听[IP]:[porta_http] ServerName app.caixa CustomLog /logs/apache2/app/app.caixa-access.log combined ErrorLog /logs/apache2/app/app.caixa-error.log RedirectMatch ^/$ /app/ ProxyPass /app/ balancer://app/app/ ProxyPassReverse /app/ balancer://app/app/ ProxyPass /app_web/ balancer://app/app_web/ ProxyPassReverse /app/ balancer://app/app_web/ Header add Set-Cookie "ROUTEIDapp=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED <Proxy balancer://app> BalancerMember ajp://[IP_ServAPP]:[porta_AJP] route=node1 retry=180 connectiontimeout=300000ms ping=500ms lbset=0 BalancerMember […]