Articles of 负载均衡

主要网站需要什么硬件和软件来正确pipe理1000多台服务器?

对不起,这样一个高层次的问题。 我了解服务器负载平衡的基础知识,但pipe理30,000台服务器的概念对我来说有点陌生。 平衡两台或三台服务器的规模是否相同? 这与memcached,sql / mysql,search引擎等事情有什么关系? 这是一个“控制器”服务器和从属服务器的传统系统吗? 如何处理冗余? 感谢有关此事的文章的任何信息或方向。 编辑感谢回复的家伙。 我的post被closures了,但是我修改了标题,希望能重新打开,因为我发现这些超级高级数据解决scheme涉及的问题解决过程令人着迷,而且我目前正在构build一个需要一些基本负载平衡,因此这个问题。

实用任播

我读过如何使用DNS将访问者发送到最近的服务器? 但是还有一些东西,在实际的层面上,我不明白。 说我有两台服务器。 一个在纽约另一个在巴黎。 他们都有不同的IP地址1.1.1.1和1.1.1.2,它们是由ISP(或托pipe公司)分配给他们的IP地址, 我需要遵循哪些步骤,以便欧洲人在inputhttp://blabla.com:8080时将被转换为与客户端最近的服务器的IP? 我的最终目标是通过将用户引导到最近的服务器来提高我写的TCP-Socket应用程序的速度。 更新:感谢球员的答案。 我想我还有很多需要学习的东西:\我才能真正做到这一点。

你相信LACP?

在devisenetworking拓扑时,有什么理由不依赖LACP? 我的意思是L2 切换到虚拟机pipe理程序连接,所以它是虚拟机的聚合stream量累积的地方。 我们正在讨论5 x 1 GbE LACP绑定。 我不同意我的同事。 他说: “为什么我们应该在整个安装过程中增加另一层开销?这只是另一个潜在的失败点。” 而且他总体上对链路聚合持怀疑态度。 我认为在802.3ad模式下的linux bonding驱动是可靠和不错的select。 他还认为,我们不需要它,因为在我们的环境中不会有这么大的stream量,简单的1 GbE就足够了。 我们高中有大约100个PC客户端和大约10台服务器在我们的局域网中。 所以当我们不知道我们需要LACP的天气时,我们处于这种情况。 关于networkingstream量的一些额外的数据可能会很好,但我认为检索有意义的数字是一个挑战。 所以依靠直觉就容易多了 ,只是说:“ 是的 ,我们希望LACP,因为交通。 或者“ 不 ,因为它不可靠,我们也不需要它”。 有什么build议么?

Googlenetworking架构

我知道这个问题可能会被视为“不是真正的问题”,“主观的”甚至是“论证的”。 如果这是一个错误,我很抱歉。 我在networking上并不擅长,但是我正努力变得更好,学习更多。 (你可能知道这句话:“智力的第一步是承认你是愚蠢的”:P)。 networking方面,在我的浏览器中inputwww.google.com并按回车键后会发生什么? 以下是我所知道的: 浏览器应用程序发出DNS请求来查找www.google.com的IP。 它可能会发现209.85.148.105(这就是我现在刚刚解决的)。 然后它通过TCP / IP连接到端口80(HTTP的默认端口)上的主机,并发送一个HTTP请求,如GET / 接收HTML数据并显示它(以及加载额外的资源,如.css,图像文件等) 我想知道的是它如何一步一步连接到Google服务器 。 请求从我的电脑和我的ISP终止后,终于在某个时候点击谷歌硬件。 有负载平衡器吗? 他们有多less? 是否有多个级别的负载均衡器? 即:负载均衡器的负载均衡器负载均衡器… 最终的Web服务器有多强大? 它可能是一个糟糕的500兆赫CPU机器与512MB RAM和10 GB硬盘? 或者,也许是一个8核,16GB的RAID-0 SSD野兽? 他们在networking级使用什么样的冗余? 如果负载平衡器失败会发生什么? 如何使www.google.com不可用? (不,我不想破坏或者……)

haproxy可以通过引荐url来平衡负载吗? (过滤Slashdot场景)

我有一个performance不佳的networking应用程序,将大规模扩大应付互联网的重量。 Haproxy将被用来将无状态的web请求传播给许多服务器。 但是,stream量还是有限制的,我想优先考虑真正的用户。 haproxy是否可以configuration为将特定引荐来源url的stream量发送到特定的框? 例如,如果在新闻文章中提到部署的网关,我可以将来自该文章的stream量redirect到一个快速静态的HTML网站,上面写着“谢谢你的兴趣,这是一些信息”。 如果这是可能的,也许有人可以从configuration文件共享一个相关的片段。

查看Keepalived的当前状态

有没有办法使用服务器实例内的命令行查看当前状态(主/备份)? 干杯

DNS性能:是否有多个辅助NS服务器提高性能?

当一些域有主NS和多个次NS时,客户会随机要求它们减less负载,还是只会触发主NS,而只有在主服务器出现故障时才会继续使用辅助NS?

每个新客户使用一次负载均衡器还是一直使用负载均衡器?

我在IP1.1.1.1和1.1.1.2有两台服务器(S1,S2),我想在www.example.com为它们加载负载均衡。 我正在考虑在1.1.1.3上有一台机器作为负载平衡器:dns example.com指向1.1.1.3,LB将redirect到1.1.1.1或1.1.1.2。 问题:Web浏览器客户端向example.com发送1Mb文件。 在去S1之前文件是否完全通过LB? 我的意思是所有的数据包从客户端传到LB到S1? 或者是这样的:networking浏览器要求example.com ,它通过DNS返回IP 1.1.1.3(LB),然后对于第一个数据包,LB告诉客户端“嗨,和1.1.1.1交谈” ,所以Web浏览器发送所有的http数据包到S1 1.1.1.1,所以LB只接收总stream量的0.001%? 另一种可能性是我们假设请求在CPU /数据库访问等方面是很大的,所以如果负载均衡器不能处理请求(只是传输它),它仍然有一定的用处,即使它吸收了所有的交通 我希望事情如我所说,但是我不太了解http协议。 我看到一些商业硬件这样做,这就是为什么我怀疑是否存在一个纯软件解决scheme。 我不是一个英语母语,我的问题是非常基本的,我认为如果看起来复杂,不要犹豫,问我重新:)

haproxy – 在tcp模式下传递原始/远程ip

我有haproxybuild立keepalived percona集群的负载平衡和IP故障转移,因为它工作得很好,我想使用相同的lb /故障转移为另一个服务/守护进程。 我这样configurationhaproxy: listen my_service 0.0.0.0:4567 mode tcp balance leastconn option tcpka contimeout 500000 clitimeout 500000 srvtimeout 500000 server host1 xxx.xxx.xxx.xx1:4567 check port 4567 inter 5000 rise 3 fall 3 server host2 xxx.xxx.xxx.xx2:4567 check port 4567 inter 5000 rise 3 fall 3 负载平衡工作正常,但服务看到负载平衡器的IP而不是客户端的实际IP。 在http模式下,haproxy通过远程IP很容易,但是如何在tcp模式下执行? 由于我需要负载平衡的服务的性质,这是至关重要的。 谢谢! 维托

ARR在客户端用户之间混合HTTP服务器variables

我在做什么? 我正在设置蓝绿色部署以实现零停机部署。 如何执行? 我有一台服务器。 我创build了一个networking农场。 我设置了3个网站蓝色,绿色,主要在不同的端口。 Main处理来自客户端的所有请求,并将请求重写到Web场。 Web场通过ARR(应用程序请求路由)将请求路由到活动网站(蓝色或绿色) 由于从Web Farm / ARR接收请求的蓝/绿网站,REMOTE_ADDR(客户端IP地址)显示127.0.0.1。 我不希望它,虽然它是预期的,我已经创build了一个URL重写规则,在主网站设置HTTP_X_FORWARDED_FOR_INTERNAL服务器variablesREMOTE_ADDR。 我在蓝色/绿色网站上创build了另一个规则,用来自主网站的HTTP_X_FORWARDED_FOR_INTERNAL设置REMOTE_ADDR服务器variables。 结果,我得到REMOTE_ADDR作为真正的客户端IP地址。 好极了! 一切客户端用户都可以正常工作。 什么不按预期工作? 当我从不同的IP地址连接到网站,特别是对于静态内容,蓝色/绿色应用程序接收到其他客户端拥有的错误IP地址(REMOTE_ADDR)。 例: A和B是不同的IP地址。 A连接到foo.com/somestaticfile.css。 B连接到foo.com/somestaticfile.css。 当我检查IIS应用程序日志时,来自B的请求的日志显示IP地址为'A',虽然它应该是B! 我也可以根据cookie确认请求是来自B,我们在cookie中保存ip地址,根据IIS应用日志,cookie中的ip地址不等于REMOTE_ADDR。 编辑:我捕获了另一个问题,“有时”一些JavaScript响应的MIMEtypes正在成为“文本/ HTML”的响应,因为我们实现X-Content-Type-Options = nosniff,这些脚本不是通过浏览器加载。 Refused to execute script from 'https://foo.com/bundles/scripts/common?v=Pc3UWD-GF8GEIazC15mnIr_UYtcH3cQPlDPwAf2cXtU1' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled. 编辑2 :我find了一些有用的东西。 当我访问一些返回40x状态码的链接时。 与每次IP地址重放有关的错误。 在我未经authentication之后,这里是我被redirect的URL。 […]