nodejs+express 部署到Linux服務器


一,部署整體流程

  1. 本地express項目傳輸到Linux服務器上(沒有上傳node_module)
  2. 在服務器上安裝node_module包
  3. 使用pm2管理node進程 

二,部署過程

  1. 查看Linux上的node版本,一般服務器自帶版本都比較低 

node -v 

       v6.17.1版本太低了,需要升級版本到V10以上

  2. 升級node版本

# 清除node緩存
npm cache clean --force
# 安裝n模塊管理node版本
npm install -g n
# 查看n版本
n -V
# 安裝node最新版本
n latest
# 查看安裝后的版本
node -v

  3. 安裝pm2模塊

npm install -g pm2

  4. 進入express項目根目錄下,啟動項目

# 啟動項目下的www文件,並命名進程
pm2 start ./bin/www --name short-video-api --watch

# 查看啟動日志
pm2 logs

  5. 如果啟動日志沒有報錯,並出現啟動打印信息,則啟動成功,按照設定的端口訪問(確定端口對外是開放的)

注:還可以自定義端口啟動

pm2 start ecosystem.config.js --env production 
//ecosystem.config.js
module.exports = {
  apps: [
    {
      name: 'short-video-api',
      watch: true,
      script: './bin/www',
      env_production: {
        HOST: '0.0.0.0',
        PORT: 3001,
        NODE_ENV: 'production',
      },
    },
  ],
}

  

三,服務對外支持https訪問,通過nginx轉發

server {
        listen       443;
        server_name  localhost;
        
        ssl on;
        root html;
        index index.html index.htm;
        ssl_certificate      /usr/local/nginx/5220423.pem;
        ssl_certificate_key  /usr/local/nginx/5220423.key;

       #ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;
        ssl_prefer_server_ciphers on;

        location / {
            root /var/www/html;
            index  index.html index.htm;
        }
        location /short-video-api {
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host  $http_host;
            proxy_set_header X-Nginx-Proxy true;
            proxy_set_header Connection "";
            proxy_pass http://127.0.0.1:3000;// nodejs項目端口
            proxy_redirect default;        
        }
    }

  

四,pm2常用命令  

詳情參考官網

$ pm2 start app.js # 啟動app.js應用程序

$ pm2 start app.js -i 4        # cluster mode 模式啟動4個app.js的應用實例

# 4個應用程序會自動進行負載均衡

$ pm2 start app.js --name="api" # 啟動應用程序並命名為 "api"

$ pm2 start app.js --watch      # 當文件變化時自動重啟應用

$ pm2 start script.sh          # 啟動 bash 腳本

$ pm2 list                      # 列表 PM2 啟動的所有的應用程序

$ pm2 monit                    # 顯示每個應用程序的CPU和內存占用情況

$ pm2 show [app-name]          # 顯示應用程序的所有信息

$ pm2 logs                      # 顯示所有應用程序的日志

$ pm2 logs [app-name]          # 顯示指定應用程序的日志

$ pm2 flush                       # 清空所有日志文件

$ pm2 stop all                  # 停止所有的應用程序

$ pm2 stop 0                    # 停止 id為 0的指定應用程序

$ pm2 restart all              # 重啟所有應用

$ pm2 reload all                # 重啟 cluster mode下的所有應用

$ pm2 gracefulReload all        # Graceful reload all apps in cluster mode

$ pm2 delete all                # 關閉並刪除所有應用

$ pm2 delete 0                  # 刪除指定應用 id 0

$ pm2 scale api 10              # 把名字叫api的應用擴展到10個實例

$ pm2 reset [app-name]          # 重置重啟數量

$ pm2 startup                  # 創建開機自啟動命令

$ pm2 save                      # 保存當前應用列表

$ pm2 resurrect                # 重新加載保存的應用列表

$ pm2 update                    # Save processes, kill PM2 and restore processes

$ pm2 generate                  # Generate a sample json configuration file

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM