我的服务器已经收到(读取)networkingstream量突然增加,请求许多地图图像瓷砖,和Apache无法处理它。
Apache甚至无法处理redirect! 我在CentOS机器上获得的平均负载超过200
有没有一些软件可以redirect一些stream量,如只有来自特定目录(如http://example.com/maptiles/abc.png )的stream量到不同的地址(如http:// s3.amazonaws.com/mytiles/abc.png )?
这可以通过HAProxy完成吗?
你可以做到这一点,但在你走到这个极端之前,考虑提高你现有服务的性能,包括(也许)放入一个caching逆向代理,如Varnish。 当你到了你唯一的select是向S3提供一些stream量的时候,反正你可能会死在水里。
您可能需要考虑的是将某些内容放在单独的子域 (如maptiles.example.com )上,将其指向S3,并将链接更改为站点代码中的这些资源以引用该子域。 这会占用你机器的一大笔费用。
如果您认为您的服务器达到了极限,则可以使用haproxy作为负载均衡器,并将所有stream量引导至该负载均衡器。 然后,它会将请求redirect到configuration的后端。 haproxy的一些重要function包括:
我会说你应该安装 – 如果你可以在一个专用的实例上完成,也可以在同一个工作 – 在你的Apache Web服务器前的一个NGINX实例(一个简单的事件web服务器/美丽的负载平衡器解决scheme)。
你可以添加一个Varnishcaching(如果你有足够的内存,可以到NGINX)来在内部pipe理这些静态请求,而不涉及你的apache设置。 这是一个非常简单的设置,可以让你水平增长(使用Apache添加更多的服务器,并从NGINXredirect到他们)。
您还应该了解您的瓶颈位置。 200+的负载可能与高CPU有关(也许你有MySQL在本地运行,你是缺less索引?),或磁盘I / O(从iostat GNU / Linux命令查看iowait%)可能与这些静态文件请求。
了解瓶颈应该是第一步,然后卸载你所能做的一切。