pm2運行json文件啓動node項目及pm2-web的安裝

pm2運行json文件啓動node項目及pm2-web的安裝

定義運行配置文件

pm2運行json文件啓動node項目及pm2-web的安裝
我們可以預定義一個配置文件,然後制定運行這個配置文件,比如我們定義一個文件app.json,內容如下:


[root@jenkins-master linux]# cat app.json 
{
  "apps":[
    {
      "name": "sourcepath_Jenvironment",
      "cwd": "/data/source/sourcepath_Jenvironment/publish/",
      "script": "/data/source/sourcepath_Jenvironment/publish/service/server.js",
      "log_date_format": "YYYY-MM-DD HH:mm Z",
      "error_file": "/data/pm2-log/errlogs/sourcepath_Jenvironment-err.log",
      "out_file": "/data/pm2-log/outlogs/sourcepath_Jenvironment-out.log",
      "pid_file": "/data/pm2-log/outlogs/sourcepath_Jenvironment.pid",
      "instances": 1,
      "max_restarts": 50,
      "watch": false,
      "merge_logs": true,
      "exec_interpreter": "node",
      "exec_mode": "fork",
    }
  ]
}
  • 然後可以通過,運行這個App。
    pm2 start app.json
apps:json結構,apps是一個數組,每一個數組成員就是對應一個pm2中運行的應用
name:應用程序名稱
cwd:應用程序所在的目錄
script:應用程序的腳本路徑
log_date_format:
error_file:自定義應用程序的錯誤日誌文件
out_file:自定義應用程序日誌文件
pid_file:自定義應用程序的pid文件
instances:
min_uptime:最小運行時間,這裏設置的是60s即如果應用程序在60s內退出,pm2會認爲程序異常退出,此時觸發重啓max_restarts設置數量
max_restarts:設置應用程序異常退出重啓的次數,默認15次(從0開始計數)
cron_restart:定時啓動,解決重啓能解決的問題
watch:是否啓用監控模式,默認是false。如果設置成true,當應用程序變動時,pm2會自動重載。這裏也可以設置你要監控的文件。
merge_logs:
exec_interpreter:應用程序的腳本類型,這裏使用的shell,默認是nodejs
exec_mode:應用程序啓動模式,這裏設置的是cluster_mode(集羣),默認是fork
autorestart:啓用/禁用應用程序崩潰或退出時自動重啓
vizion:啓用/禁用vizion特性(版本控制)

pm2運行json文件啓動node項目及pm2-web的安裝

總結-常用命令總結如下:

  • 安裝pm2

npm install -g pm2

  • 啓動應用

pm2 start app.js

  • 列出所有應用

pm2 list

  • 查看資源消耗

pm2 monit

  • 查看某一個應用狀態

pm2 describe [app id]

  • 查看所有日誌

pm2 logs

  • 重啓應用

pm2 restart [app id]

  • 停止應用

pm2 stop [app id]

  • 開啓api訪問

pm2 web

安裝pm2-web

安裝軟件

安裝時需要g++,make等軟件,下面的軟件你自己挑(我是剛裝完系統就都裝了)

yum -y install ntpdate lrzsz tree cmake gcc gcc-c++ autoconf l libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel libxslt-devel libtool-ltdl-devel make wget docbook-dtds asciidoc e2fsprogs-devel gd gd-devel openssl openssl-devel lsof git unzip gettext-devel gettext libevent libevent-devel pcre pcre-devel

npm install --unsafe-perm -g pm2-web

pm2-web

pm2運行json文件啓動node項目及pm2-web的安裝

配置啓動文件


[root@localhost ~]# cat pm2-web-config.json 

{
    "www": {
        "host": "localhost",
        "address": "0.0.0.0",
        "port": 11111
    }                         
}

[root@localhost ~]# cat pm2-web-start.sh

nohup pm2-web --config pm2-web-config.json >pm2-web.log&

[root@localhost ~]# sh +x   pm2-web-start.sh

pm2運行json文件啓動node項目及pm2-web的安裝

pm2運行json文件啓動node項目及pm2-web的安裝

pm2運行json文件啓動node項目及pm2-web的安裝

pm2運行json文件啓動node項目及pm2-web的安裝

server {
        listen 80;
        server_name pm2-web.xxxx.com;
        access_log /data/nginx/logs/node-web.xxx.com/node-web.xxxx.com.log main;
        location / {
                auth_basic              "node-web monitor";                                                                      
                auth_basic_user_file    /data/nginx/htpasswd.conf;  //設置用戶訪問控制
                proxy_pass http://192.168.0.xxx:xxxx;
                proxy_redirect off;
                proxy_set_header Host $http_host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_connect_timeout 360;
                proxy_send_timeout 360;
                proxy_read_timeout 360;
        }
}

pm2運行json文件啓動node項目及pm2-web的安裝

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章