在執行 CentOS 的 VPS 上使用 mongoDB 執行 node.js 應用程序的問題
我已經在 DirectAdmin 中註冊了一個 VPS,執行 CentOS,並且我正在使用從另一個站點註冊的域。我已經完成了必要的配置,使域顯示 VPS 的預設頁面。我還使用 CentOS 安裝了 node.js 和 mongoDB,但我一直堅持執行應用程序。我為 MongoDB 設置了一個 .conf 文件,其中 bind_ip 設置為 VPS 的 IP,當我嘗試在埠 27017 上執行 MongoDB 時,我收到以下消息:
service mongod start Starting mongod: [ OK ] bash: /var/log/mongodb/mongodb.log: Permission denied
我認為這是由於我沒有對VPS進行任何授權,但我不知道如何進行授權。我究竟做錯了什麼?
另外,我無法讓 node.js 正常執行。當我在 CentOS 的 3000 埠上執行基本的 node.js 應用程序時,一切似乎都很好,但是當我在 3000 埠上訪問我的域名或 VPS IP 時,伺服器沒有響應。我該如何解決這個問題?我需要在我的 VPS 上配置埠以使伺服器響應嗎?
在瀏覽器上未指定埠的情況下打開域時,如何配置 VPS 以連接到節點應用程序,而不是顯示預設的 index.html 頁面?
我沒有在 VPS 上配置 node.js 的任何經驗,所以我的最後一個問題是:有沒有關於在 VPS 上使用 MongoDB 執行 node.js 的教程?提前致謝。
編輯:我通過簡單地重新安裝它解決了 MongoDB 問題。我猜第一次安裝時出了點問題。
好像您以非特權使用者身份啟動 mongod,因此它無法打開日誌文件。您應該將 mongod 服務作為系統服務執行,然後為使用者提供訪問權限(查看 db.addUser 文件)。
要在生產環境中執行 Node.js,最好使用一些工具,例如https://github.com/nodejitsu/forever,然後通過代理來代理請求。您可以使用 Apache,因此將其設置為偵聽您的 index.html 到另一個埠,例如 ports.conf 中的 8080
Listen 8080
並在 80 添加一個虛擬重定向到您的應用程序,例如:
<VirtualHost you.example.com:80> ProxyRequests off <Proxy *> Order deny,allow Allow from all </Proxy> <Location /> ProxyPass http://localhost:3000/ ProxyPassReverse http://localhost:3000/ </Location> </VirtualHost>
也許你可能會失去一些純節點性能以及這種設置,所以看看https://github.com/nodejitsu/node-http-proxy也。