鍍金池/ 問答/Linux  HTML/ nodejs的koa2項目在ubuntu部署,需要nginx嗎?

nodejs的koa2項目在ubuntu部署,需要nginx嗎?

我用koa2寫的項目,準備部署在測試服務(wù)器,服務(wù)器安裝了pm2,并且啟動了,請問需要nginx配置嗎?
還有我啟動了之后,好像提示mongodb服務(wù)沒有啟動,我又該怎么啟動呢?
如果不用nginx,我pm2啟動了之后我改如何通過打開服務(wù)器地址來啟動項目呢?

clipboard.png
上面是我已經(jīng)用pm2啟動了的項目,但是不知道該如何打開項目頁面?

const path = require('path')
const rootPath = path.normalize(__dirname + '/..')
const env = process.env.NODE_ENV || 'development'

const config = {
    development: {
        root: rootPath,
        app: {
            name: 'koa'
        },
        port: process.env.PORT || 9990,
        db: 'mongodb://localhost/koa-development'
    },

    test: {
        root: rootPath,
        app: {
            name: 'koa'
        },
        port: process.env.PORT || 9991,
        db: 'mongodb://localhost/koa-test'
    },

    production: {
        root: rootPath,
        app: {
            name: 'koa'
        },
        port: process.env.PORT || 3000,
        db: 'mongodb://localhost/koa-production'
    }
}

module.exports = config[env]

這是node項目的config配置文件。
我還想了解一下生產(chǎn)環(huán)境的數(shù)據(jù)庫如何配置?mongodb地址應(yīng)該寫哪個呢?

我輸入pm2 log報錯是這樣的,大家知道這是什么原因嗎?

clipboard.png

回答
編輯回答
毀與悔
  1. Node已經(jīng)是一個運行時的JS服務(wù)環(huán)境,只要不同的Node項目使用不同的端口,可以使用IP:Port的方式訪問不同的項目。PM2是管理Node的軟件環(huán)境,可以使用PM2便捷地啟動切換停止多個Node項目;
  2. Nginx是配置域名關(guān)聯(lián)IP(包含不同的Port),測試時沒有域名,就直接使用IP即可,也即如【1】所述,只要PM2即可。
  3. MongoDB的配置(你應(yīng)該是問數(shù)據(jù)庫鏈接怎么寫) 取決于Node項目和MongoDB是否在同一服務(wù)器中 。
    3.1. 相同 則開發(fā)、測試、生產(chǎn)的MongoDB配置沒有區(qū)別,數(shù)據(jù)庫鏈接都是形如:mongodb://127.0.0.1:27017(默認端口)/dev or /test or /production
    3.2. 不相同,即MongoDB數(shù)據(jù)庫在其它服務(wù)器中,允許遠程連接的前提下,數(shù)據(jù)庫鏈接都是形如:mongodb://IP:Port/dev or /test or /production
    或者形如:
    mongodb://域名/dev or /test or /production
    3.3. MongoDB的啟動、停止、重啟可以參考官方文檔。
  4. PM2啟動成功以后,按照Node項目中開啟的端口,使用IP:Port的方式訪問任意項目。
  5. 圖中錯誤是mongoose未能鏈接到MongoDB數(shù)據(jù)庫。
  6. 不熟悉服務(wù)器環(huán)境配置的話,可以使用寶塔面板,直觀零基礎(chǔ)。
2017年3月26日 11:28
編輯回答
厭遇
  1. 不需要,如果不是80端口。
  2. 直接啟動就好了,比如service mongodb start
2018年8月26日 00:54
編輯回答
墻頭草

1 是80端口也可以直接啟動
前提是你這個服務(wù)器只有一個域名綁定,如果要部署多個經(jīng)域名訪問的,就要nginx了

2 數(shù)據(jù)庫沒有啟動

2018年9月22日 06:30
編輯回答
淺時光

不需要nginx

先看一下mongodb有沒有啟動,使用 mongod 命令啟動

2017年2月5日 22:46
編輯回答
艷骨

如果是80端口的話就不需要

2018年8月16日 13:40