2016-08-20 107 views
1

我能夠在家用電腦上設置Apache Web服務器,並在端口80上運行。我的轉發路徑已設置好,以便我的公共域將我帶到Apache HTDOC文件中。要澄清的是,我能夠託管我自己的網絡服務器,因此我可以託管我自己的網站。我成功地顯示HTML內容。在Apache上託管我自己的節點服務器?

現在,我想添加NodeJS到這個功能,我有點困惑如何。

answer on this link,我做了確保取消對我的httpd文件下面幾行:

LoadModule proxy_module modules/mod_proxy.so 
LoadModule proxy_http_module modules/mod_proxy_http.so 

現在我在哪裏,我httpd文件,把這個線有點糊塗:

ProxyPass /node http://localhost:8000/ 

對於這個問題,我不確定這是否允許我在外部訪問我的nodejs。

另外,我想知道我是否應該在我的Apache文件夾上安裝NodeJS,在我的案例中是c:/Apache24。如果是這樣,我將安裝在哪個目錄中?

要添加,我的測試節點文件(名爲nod.js)包含以下代碼。

var http = require('http'); 
http.createServer(function (req, res) { 
    res.writeHead(200, {'Content-Type': 'text/plain'}); 
    res.end('Hello Apache!\n'); 
}).listen(8000); 

我通過node nod在我的htdocs運行此。雖然這在localhost中有效,但它不會顯示在我的外部IP上。

編輯:從this example我相信,我有包裝的虛擬主機裏面我的ProxyPass,像這樣:

<VirtualHost *:80> 
    ProxyPass /node http://localhost:8000/ connectiontimeout=5 timeout=30 # optional timeout settings 
</VirtualHost> 

這是不行的,雖然我的球場內承擔其我應該是在做。

回答

1

在哪個目錄上運行節點服務器並不重要。
Apache通過HTTP向節點發送請求,從技術上說,它們可以位於兩臺不同的機器上(您使用本地主機,但它可以是其他任何IP地址)。

唯一重要的事情是不是目錄,但該端口使用的是在您的節點配置

+0

難道我也有轉發路徑我的8000端口? –

+1

你已經做了,根據你的'httpd'以上 –

+0

我有點困惑,因爲我的錯誤是在那裏。我有一個index.html文件,只要我點擊公共IP地址就會運行(例如:http://12.12.12.12.12)。現在,當我運行'node nod'時,我的'localhost:8000'顯示了我的節點文件。但是當我去'http://12.12.12.12.12:8000'時,它不會出現。 –

相關問題