2011-07-21 73 views
2

我正在尋找使用PHP運行提供網頁內容的Web服務器,並通過node.js爲AJAX提供REST API請求;節點將運行在機器上的不同端口上,因此爲了解決XSS限制的問題,我正在考慮在Apache上使用mod_proxy將REST請求重新路由到節點端口,如here所述。通過apache mod_proxy路由node.js請求:性能?

我的問題是,該架構是否存在嚴重降低性能的風險?我知道node.js在某些情況下性能優於Apache,所以我擔心通過mod_proxy通過Apache運行這些請求會顯着降低節點的性能;另一方面,因爲它是一個簡單的代理,所以可能會對Apache產生最小的干擾。

我可以期待這種配置會將我的node.js吞吐量降低到Apache級別,還是沒有什麼可擔心的?如果這是性能問題,是否有更好的方法來透明地路由/代理這些調用?

+3

把apache的infront的節點感覺真的倒退了。把nginx放在apache&node之前,或者放棄apache – Raynos

+0

@Raynos:我不想放棄apache,因爲它可以很好地提供我的PHP;但nginx聽起來很誘人。 –

+0

作業?當然似乎是這樣。 – Fattie

回答

2

我的問題是,這個架構是否有降低 性能的風險?

我認爲這取決於您在node.js中編寫的應用程序類型。如果你有長時間運行的請求,我認爲性能會非常糟糕,因爲Apache每個連接使用一個線程(NGinx表現更好)。如果你有短暫的生活聯繫,我認爲你的表現可能是可以接受的。

我的建議是將您的堆棧與siege進行基準測試。首先是基準node.js,接下來是Apache(代理)。

@Raynos:我不想放棄Apache的,因爲它的服務我的PHP相當 很好原樣;但nginx聽起來很誘人。

Nginx can serve PHP所以也許你應該看看Nginx。