如何水平扩展http请求?

时间:2016-12-27 01:20:29

标签: linux http tcp load-balancing high-load

好的,我说我有简单的Web服务器实例,它总是响应“Hello world”,这个简单的服务器只能同时处理1K连接。

我必须同时处理1M的http请求,所以我用我的web服务器实例克隆1K节点。

但我只有一个切入点。所有要求都通过一点来说。

那么应该作为委托请求的入口点放置什么?什么软件可以将1M请求传递给1K Web服务器?

1 个答案:

答案 0 :(得分:6)

如果您使用循环DNS,请求可以通过多个点。

如果您想在Linux上使用反向代理软件,那么Nginx就是您的最佳选择。

node-http-proxy似乎也很受欢迎。

Golang在其httputil包中内置了一个ReverseProxy。

(如果我没有弄错的话,上面的三个都会在Linux上使用epoll。但是不能保证任何软件总能处理1M连接。这取决于很多因素。)

负载平衡是一个广泛的主题。以下是一些阅读链接:

https://en.wikipedia.org/wiki/Round-robin_DNS

https://en.wikipedia.org/wiki/C10k_problem

https://en.wikipedia.org/wiki/Clustered_web_hosting

https://en.wikipedia.org/wiki/Reverse_proxy

https://en.wikipedia.org/wiki/Load_balancing_(computing)