2013-04-13 21 views
4

我正在寫Go中的webserver,它將取代現有的網站。我仍然需要一些舊的PHP腳本。現在我有lighttpd + fastcgi。所以我希望我的Web服務器將PHP作爲FastCGI調用。。 FastCGI的?

什麼是最好的處理方法? 我想我需要一些去FastCGI API

http://golang.org/pkg/net/http/fcgi/ - 它似乎只支持服務器端不客戶端。

+2

我發現問題和當前的答案有趣和信息豐富,我認爲答案是由「具體的專業知識」支持。我沒有看到「辯論,辯論,投票或擴展討論」的可能性。 –

回答

3

我認爲如果你想直接連接到fastcgi進程,你必須自己創建。請記住,無論如何你仍然需要運行一個進程管理器/ spawner,因此,運行nginx也不是一個巨大的飛躍,並且在那裏爲PHP腳本提供Go進程代理。

您也可以合理地將其轉向,讓最終用戶在端口80上連接到nginx,並根據需要向您的Go進程或fastcgi提供nginx代理請求。這樣做的一個優點是,Go可以輕鬆地讓Go進程作爲不同於root的用戶運行。

+0

我不會以root身份運行。我使用iptables來代替。我使用長輪詢並期望系統支持1000或10000或更多併發連接。如果我把nginx放在前面,那麼我會有2倍的連接。我想這會很昂貴。如果Go進程連接nginx(在我的情況下是lighttpd),那麼我將不得不修改PHP腳本。否則,他們會將外部IP檢測爲127.0.0.1。 – Max

+1

Go進程與nginx對話,然後運行PHP。 Go進程可以添加一個X-Forwarded-For頭,而nginx可以使用它來設置IP地址。你也可以實現一個fcgi「客戶端」;它不是太難,但它會更多的工作完成和無錯誤。 –