【发布时间】:2013-03-31 02:08:51
【问题描述】:
出于性能原因,我不得不重写部分网络基础架构。
为此,我将关键部分编写为 C++ 中的 Web 应用程序。此 Web 应用程序侦听给定端口,一次只接受一个 TCP 连接,并处理它在当前连接上接收到的所有 HTTP 请求。
你可以这样启动它来监听 8080 端口:
./webapp 8080
虽然它可以完美运行并且比以前快得多,但它的局限性在于应用程序的一次连接一次的性质。您不能仅通过一个应用程序实例通过多个连接同时提供 HTML 页面、Javascript 和图像。
为了克服这个限制,我想运行一个前端反向代理 HTTP 服务器,它侦听端口 80,并将传入的 HTTP 请求均匀地重定向到我在后台运行的 Web 应用程序的多个实例上。这些实例可以像这样在启动时创建:
./webapp 10000
./webapp 10001
./webapp 10002
./webapp 10003
./webapp 10004
./webapp 10005
./webapp 10006
./webapp 10007
./webapp 10008
./webapp 10009
前端应配置为在启动时与每个网络应用建立永久 HTTP 连接,然后将传入的 HTTP 请求转发到正在运行的网络应用之一,均匀分布。
反向代理也应该支持从客户端到自身的 SSL。支持 SPDY 将是一个加分项,但不是必须的。
我的问题是:在我的场景中,哪些 HTTP 反向代理可以用作前端?如果你知道的不止一个,每个的优缺点是什么?
【问题讨论】: