2017-08-21 204 views
0

我沒有在該主題上找到任何明確的信息,因此我寧願在將應用程序部署到遠程服務器之前詢問。從遠程服務器端訪問本地主機

我想我的流星網絡應用程序與influx進行交互&即使應用程序在遠程服務器上運行,用戶的計算機上本地運行的mongo數據庫(實際上,該機器實際上是一個碼頭容器)。但似乎連接到給定的url不可能在客戶端腳本內部(當我執行新的InfluxDB(...)或MongoClient.connect(...)時,發送給我一個錯誤。

它如果連接是從服務器端進行的,但工作正常,但現在我的應用只在本地進行開發,所以這並不奇怪。當應用部署在遠程服務器上時,它仍然可能嗎?否則,是否有簡單?!?解決方案來達到這些本地機器

感謝您的幫助

回答

0

對於遠程服務器來訪問你的本地計算機上,你不能用戶本地主機,你需要有一個專門的公網IP,或指向你的公網IP DynDNS的,並連接到該地址。

您還必須在面向Internet的路由器的端口轉發到您的計算機內網IP地址打開一個整體。

而且也是在防火牆(在Windows/Linux)的這些連接打開一個整體,通過併到達蒙戈或InFluxDb。

我個人不rcomend這樣做,由於安全性問題,我實在看不出做這樣的事情的任何好處。

+0

我同意。這聽起來很笨拙。問題是我想使用JavaScript API製作遠程數據庫的本地副本,並且我需要連接到本地副本。但是當我試圖在客戶端腳本中連接到本地主機時,我發現了一些問題。但是,在這種情況下,該應用程序應該在遠程服務器上運行,並在用戶的計算機上本地運行(我想將數據從服務器傳輸到計算機以啓用脫機使用),因此我想我會嘗試構建這些副本在服務器上,然後用本地版本的應用下載。 – Johenn

+0

您還可以探索對備份箱進行備份 – Juan

0

你的意思是你想用你的服務器端代碼操縱Mongo的數據庫客戶端如果是這樣,請檢查:

  1. 做客戶端的機器有Mongo的數據庫?
  2. 是數據庫運行?
  3. 數據庫是否打開其端口?
  4. 是你的連接配置是否正確?

最好顯示您的代碼,以便我可以檢查是否有任何問題。

+0

這的確是我試圖這樣做,因爲當我運行下面的命令,例如不工作,從客戶端:常量localMongo = Mongo.MongoClient.connect(「mongodb的://根:根@ 192.168.99.100:27017/mongodb的「);我得到錯誤TypeError:net.createConnection不是一個函數。似乎這個函數不能在瀏覽器中運行,並且必須放在服務器端腳本中。 – Johenn

+0

代碼無法在客戶端(瀏覽器)中運行。 如果你想操縱你的客戶端(瀏覽器)的數據,把代碼放到服務器端,並用一個函數包裝它,讓我們說changeData()。如果您想更改mongo中的數據,只需從您的客戶端(瀏覽器)使用Metear.call('changeData')調用此函數,這可能會解決您的問題。 –