2015-05-16 46 views
1

我一直在使用Ruby on Rails創建網絡應用程序一段時間,並且我將切換到NodeJS/ExpressJS以供我的下一個網絡應用程序使用。是否必須在NodeJS上放置反向代理?

我習慣於在rack堆棧之前將nginx作爲反向代理;但是對於NodeJS/ExpressJS,我是否必須在其前面放置反向代理?如果我必須,你能解釋我爲什麼嗎?

+0

你不需要,但你可以做它來提高性能。正如釩的答案中所述,Nginx比本地node.js服務器更好地服務於靜態文件。 – Vadorequest

回答

2

首先,把反向代理或不是你的決定只。我只能說這樣做的缺點。

  • 反向代理(尤其是nginx)可用於平衡連接。如果您有多個後端服務器,則可以將nginx用於在它們之間轉發請求,如果其中一個服務器關閉,則服務將工作
  • Nginx可用於爲靜態文件提供服務,比node.js/RoR更快
  • Nginx可以用於服務SSL連接,它使您的應用程序更輕一點
  • 添加反向代理後,您只能在127.0.0.1上運行應用程序,因此無法遠程執行而無需調用nginx和日誌記錄請求。

希望它能幫助您選擇將nginx放入產品環境。

+0

的確,Nginx可以做到這一切。生產中使用它會更好,因爲它使事情變得更快。 – Vadorequest