簡體   English   中英

在一台節點服務器上托管多個移動應用程序?

[英]Host multiple mobile apps on one node server?

我一直在配置CentOS VPS以使用node.js為移動應用程序托管各種服務。

通過所有的研究,我確定現在可以為一個應用程序部署一個node.js服務器,但是如何在服務器上分離所有通過80端口的服務呢?

我考慮過為每個應用程序使用不同的端口,因此端口3000將是mobileApp1,端口30001將是mobileApp2,但是在閱讀了幾篇文章后,我得出結論,這是一個壞主意。 主要是因為大多數防火牆都配置為允許連接到端口80,最終我可能想創建使用與移動客戶端相同的Web服務的站點。

我發現了一個建議使用如下代理的網站

    var http = require('http')
, httpProxy = require('http-proxy');

httpProxy.createServer({
  hostnameOnly: true,
  router: {
    //web-development.cc
    'www.my-domain.com': '127.0.0.1:3001',
    'www.my-other-domain.de' : '127.0.0.1:3002'
  }
}).listen(80);

如何支持可能從移動應用程序或我的網頁之一調用的各種Web服務,並使其全部通過端口80?

是的,您可以將節點用作代理並使其在端口80上運行,將基於URL的請求路由到您的各種節點應用程序,或者您可以在端口80上運行Web服務器,並將其將請求路由到您的節點應用程序。 節點中有很多代理選項,因此從這里開始,您將對應該使用哪種選項有更多的意見。 我使用Web框架Hapi取得了成功,這是沃爾瑪用來將請求路由到其應用程序服務器的Web框架。 以下是有關他們如何使用Hapi代理請求的一些文檔。

另一個可能更常用的選擇是在端口80(和443)上使用ApacheNginx之類的Web服務器,然后根據URL將請求路由到您的應用程序服務器。 那里有很多關於如何設置它的文檔,因為這是很多人為路由請求所做的。 我總結了一個要點,以幫助您記住如何設置一個簡單的nginx服務器,以基於域將請求路由到單獨的節點應用程序,您可以在這里找到: https : //gist.github.com/dylants/8609050 (請注意,要點是希望在這些連接上啟用SSL,但希望可以為您提供一個思路。)

但總的來說,在同一台計算機上的不同端口上運行多個節點應用程序是很好的(並且很正常)(我粘貼的要旨是要執行此操作的環境)。 然后,您可以限制對這些端口(例如3000、3001、3002等)的訪問,並僅允許對端口80和443的訪問。然后讓您的Web服務器在端口80和443上運行,並將請求路由到這些端口在端口3000、3001等上運行的節點應用程序

使用這些Web服務器的好處是,一旦您了解了基礎知識,它們就非常簡單,並且在運行之后根本不需要太多維護。 您最初可能需要做一些研究,但最后還是值得的。 希望有幫助:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM