2011-08-29 43 views
12

Apache和Node.js的有共同之處。我使用Node.js越多,我越喜歡Node.js;同樣,我使用Apache越多,我越喜歡Node.js.雖然關於Apache的Node.js作爲一個應用程序容器

一個很好的事情,也可以通過相同的端口做了很多事情。 PHP,Python,Perl,不同的應用程序,不同的路徑,整個magilla。 Node.js不這樣做,它不應該,但我想做類似的事情。

我想給它一個URL前綴列表(或理想的regexps)和足夠的信息,如果它接收到匹配特定前綴的請求,它將請求傳遞給運行指定腳本的下級實例如果還沒有的話,它會啓動這樣一個實例,並且當這樣做的時候關閉它似乎是謹慎的)。基本上,我想nodejs-proxycluster合作。有了它,我可以通過端口80在同一臺機器上同時運行多個應用程序。

這似乎很簡單,非常有用,當我想到自己寫這本書時,「這似乎很簡單,很有用 - 可能有人已經寫過它!「有什麼建議麼?

+6

+1經典。 「我使用apache的次數越多,我越喜歡node.js」 – Raynos

+0

Mongrel2可以用來像你想要的那樣路由請求(如果我理解正確的話)並且有Node的綁定。但它不是Node軟件。 – Austin

+0

@Austin - 看起來它會工作,但我確實需要一個Node模塊(一個「結節」?)。我相信,有可能從JavaScript完全構建一個複雜,高效的系統,我希望測試這種信念。 – Malvolio

回答

7

的Node.js沒有任何內置的能力將請求路由到不同的應用程序,但像他這樣的框架正在開發中。

想到Nodejitsu的Haibu - 它管理每個應用程序的子進程並使用node-http-proxy來路由請求。 (基於Docker

+0

這個驗證的答案需要更新。 –

+0

@ Miss.Code隨意! – s4y

1

你可以看看http://expressjs.com我形容爲「西納特拉節點」。它給出了整個基於URL /模式的路由選擇。您可以將它與https://github.com/visionmedia/express-resource結合起來創建一種有點REST風格的資源方法。

+0

你確定嗎?我查看了文檔,看起來路由是內部功能,而不是其他節點,這是非常不同的。 – Malvolio

+0

我想這是我解釋爲「將請求傳遞給下級實例」,將其解釋爲「將請求路由到可用任何東西運行的線程」而不是「如果需要啓動新節點進程來處理請求」。這就是我要查看god + nginx +請求隊列進行負載平衡而不是從頭開始寫點東西的地方。因人而異。相關鏈接:http://blog.acmarques.com/deploying_node_with_nginx_and_god –

0

對我來說,這聽起來像你正在尋找一個基於事件的HTTP代理(取代阿帕奇) - 在這方面,nginx似乎是山上的現任國王。

+0

你確定嗎?它看起來不像它會維護子進程來處理它所代理的請求。 – Malvolio

+0

@Malvolio許多人使用nginx作爲*反向代理*來將請求分發到單獨的node.js實例。 – s4y

+0

@Sidnicious - 謝謝,但我的問題是,它會*保留*(即啓動,如果可取,關閉)這些node.js實例。如果不行,我將不得不構建一個node.js程序,該程序可能也會執行代理。如果它*會[快樂的舞蹈]。 – Malvolio

相關問題