如何水平扩展http请求?

cor*_*vax 0 linux high-load tcp load-balancing http

好吧,假设我有简单的Web服务器实例,它总是响应"Hello world",这个简单的服务器只能同时处理1K连接.

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

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

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

csh*_*shu 6

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

如果你想在Linux上使用反向代理软件,那么Nginx就是你的选择.

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

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

(如果我没弄错的话,上面的三个都将epoll在Linux上使用.但是不能保证任何软件总能处理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)