2016-03-01 60 views
0

我有一個由Apache託管的公共訪問網頁。我也有一個私人節點服務器在處理獲取請求的一側運行。它有點像一個API。 例如,如果我做curl http://localhost:8080/list_of_users,這個節點服務器將返回一個包含所有信息的json文件。如何讓Apache託管的公共網頁訪問同一網絡上的私人節點服務器?

我在我的java腳本中使用jQuery從該節點服務器獲取json文件。我有http://localhost:8080/list_of_users硬編碼在裏面。當我在本地進行測試時,一切正常。但是當我嘗試從其他網絡訪問我的網頁時,頁面本身可以正常工作,但無法完成獲取請求。

我覺得我應該公開節點服務器以解決問題?但事實是,我並不需要每個人都可以訪問節點服務器。我只需要它可以通過存儲在同一臺機器上的java腳本訪問。那麼有沒有更簡單的方法來做到這一點,而不是公開節點服務器?

我做了Google如何製作公共節點服務器,大多數教程說我需要做一個路由器端口轉發。我不認爲我有權這樣做......這是我試圖尋找替代方法來修復它的另一個原因......

我是這個領域的新手,所以我可能會誤解事物。對於我的問題可能造成的任何困惑,我表示歉意,並感謝您的所有幫助。

回答

1

如果將要訪問node.js服務器的Javascript將在網頁中並從用戶的瀏覽器執行,那麼node.js服務器必須是公共可訪問的。 Javsacript從用戶的瀏覽器運行,因此只能訪問公共事物。

無論您的頁面是否存儲在Apache服務器上的某個可以訪問您的私有node.js服務器的地方都無關緊要。這不是Javascript運行的地方。該頁面由用戶的瀏覽器下載,然後頁面中的Javscript運行在用戶的瀏覽器中。

因此,如果您保持相同的頁面架構,則必須公開node.js服務器併爲其提供公共IP地址/域名。

或者,您可以通過Apache服務器代理node.js服務器,以便向Apache服務器發出請求(可能位於特定端口上),並且該請求由Apache服務器代理到您的節點。 js服務器。

相關問題