Vps

在執行 CentOS 的 VPS 上使用 mongoDB 執行 node.js 應用程序的問題

  • June 6, 2013

我已經在 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也。

引用自:https://serverfault.com/questions/511912