2013-12-10 75 views
0

設置一個nodejs服務器爲REST接口(帶有json對象)提供給我的應用程序。 這工作正常。Nodejs服務器配置實驗

目前我運行Jekyll服務來提供內容頁面。這會導致一些跨站點腳本問題,因爲它們在不同的端口上運行。我可以解決這個問題,但它似乎不是最佳的解決方案。

運行nodejs服務器以在同一端口上提供REST接口和Web內容接口是否正常?我一直在研究nodejs/express/Swig作爲Jekyll服務的替代品,但是我似乎在nodejs上運行express/Swig會改變我的響應對象的行爲,這使得使用REST不太理想。

回答

2

是正常運行的NodeJS服務器提供REST接口和相同的端口上的網絡內容接口

是的,這是很常見的,因爲它是更簡單的處理,所以許多小應用程序/ apis選擇這種方法。有時API使用URL路徑前綴(如'/ api')作爲基本區別。有時候人們使用內容協商,其中'/ user/42'將根據請求'Accept'頭部發送HTML或JSON。

然而,它也是通常使用的web服務器的80端口的路由基於路徑上的不同的後端應用程序,因此,例如什麼/api將反向代理,以明確的應用上127.0.0.1:3000但一切看對於內容頁面可能會轉到127.0.0.1:3001上的jekyll應用。

  • 我將如何滾動。因爲我是在80端口反向代理very much in favor of using a real web server on port 80
    • nginx的表達對API和傑奇內容
  • 也有可能
    • 快遞偵聽80,直接處理API,使用節點,基於HTTP代理來反轉代理內容從jekyll應用程序
  • 還有一堆其他組合可以使您輕鬆工作。主要是關於你認爲容易理解,可靠,安全等。
+0

因此,你建議在80上的標準Web服務器。然後內容引擎和REST引擎在不同的端口,但Web服務器路由請求適當的端口。 –

+0

你甚至可以直接使用Node,使用類似https://github.com/nodejitsu/node-http-proxy – brandonscript