2012-06-29 100 views
1

我有一個syncer進程,它使捲曲HTTPS調用Twitter,Facebook等爲我們的用戶收集數據並更新數據庫(存儲在本地文件系統中)。在同一個系統上運行的HTTP服務器會查詢此數據庫,並在請求發生時將結果返回給用戶。從curl客戶端解耦SSL負載

問題是由於在調用Twitter,Facebook等API時發生SSL協商,sycer進程正在吃掉太多的CPU/IO。這使用戶體驗有點慢。所以我希望這個SSL協商發生在HTTP服務器運行的另一個系統上。而且我無法將syncer進程置於外部,因爲它需要本地文件系統訪問來更新數據庫。

所以我想構建一種代理服務器。同步進程將對代理服務器進行HTTP調用。代理服務器將對Twitter,Facebook等進行HTTPS調用,並將結果返回給syncer進程。

是否有任何軟件存在這個?如果事情已經存在,我不想重新發明輪子。

回答

0

我最終使用nodejs編寫了一個簡單的代理服務器。需要調用HTTPS apis的客戶端將以JSON格式將所有細節傳遞給此代理服務器。此代理服務器將依次調用HTTPS apis並將結果返回給客戶端。

0

Stunnel幾乎完全符合您的要求,如果滿足以下條件。

  • 每個服務必須運行一個stunnel實例(無論是從inetd還是獨立的守護進程模式)。
  • 運行cURL的系統必須手動將目標服務的主機名解析爲運行通道的主機的IP地址(例如/etc/hosts)才能使用它。

我以類似的方式使用stunnel連接到使用帶有SSL功能的客戶端的SSL的IRC服務器。它的作用就像一個魅力,需要小心的一點是3.x和更新版本之間的不兼容。如果您計劃使用新系統,則應該使用新系統。

+0

讓我查看stunnel – Sabya