由于性能原因,我不得不重写我们的Web基础架构的一部分。HTTP服务器能够代理请求
为此,我将关键部分写成了C++中的Web应用程序。此Web应用程序在给定端口上侦听,一次只接受一个TCP连接,并处理当前连接上接收到的所有HTTP请求。
你可以象这样开始到8080端口上监听:
./webapp 8080
虽然它完美的作品,并比以前更快,其局限性是应用程序的一个连接,在一次一个性质。您只能通过一个应用程序实例通过多个连接同时提供HTML页面,Javascript和图像。
为了克服这个限制,我想运行一个前端的反向代理HTTP服务器,它侦听端口80,并在后台运行我的web应用程序的多个实例上均匀地重定向传入的HTTP请求。这些实例可以在系统启动时创建这样的:
./webapp 10000
./webapp 10001
./webapp 10002
./webapp 10003
./webapp 10004
./webapp 10005
./webapp 10006
./webapp 10007
./webapp 10008
./webapp 10009
的前端应配置建立在启动时一个永久 HTTP连接到每个Web应用程序,再往前传入的HTTP请求其中一个正在运行的Web应用程序,均匀分布。
反向代理还应该支持从客户端到自身的SSL。 SPDY的支持将是一个加号,但不是必须的。
我的问题是:哪个HTTP反向代理能够在我的场景中作为前端工作?如果你知道不止一个,每个人的利弊是什么?
我很欣赏你的努力,但在所有诚实我甚至不认为你读过我的问题。拥有单一连接服务器的动机是我不想重新发明轮子。我只想重写性能关键部分,并将连接池等留给更成熟,已经存在的Web服务器。我不想为每个TCP连接产生一个新的进程。这就是为什么我说我想在启动时产生我的进程*并且前端应该被配置为在启动时建立到每个Web应用程序的永久HTTP连接。 – JohnCand
实质上,我在寻找一个很好的http://en.wikipedia.org/wiki/Reverse_proxy(请参阅右侧的图像和示例)。 – JohnCand
我编辑了这个问题,使其更加清晰。我希望它有帮助。 – JohnCand