由於性能原因,我不得不重寫我們的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