zoukankan      html  css  js  c++  java
  • 图文并茂基于阿里云linux服务器部署nodejs项目并添加pm2守护nodejs项目运行进程(Linux version 4.19.81-17.1.al7.x86_64)

    首先你要有一台LINIX服务器,登入以后按下面步骤执行命令,可查看系统版本以及配置

    查看Linux 内核

    • 通过 uname -a 命令查看系统位数是64位
    • x86_64表示64位系统, i686 i386表示32位系统
    uname -a
    cat /proc/version
    
    

    在这里插入图片描述

    补充信息 -- 查看当前系统版本的详细信息

    1.cat /etc/redhat-release(此方法只适合Redhat 系的Linux)
    2.lsb_release -a (此命令适用于所有的Linux 发行版本)
    
    

    安装nodejs

    • 去官网按照自己系统配置下载nodejs包(直达链接

    在这里插入图片描述

    然后安装到这个目录

    cd /home/appmanager/nodejs/

    如果你想要更简单的办法安装,可以使用命令操作,例如,使用linux命令下载文件

    wget -c https://npm.taobao.org/mirrors/node/v16.9.1/node-v16.9.1-linux-x64.tar.xz
    

    在这里插入图片描述
    在这里插入图片描述

    解压上传,改名(很抱歉,这里搞得嵌套了两个nodejs名字哈哈)

    tar -xvf node-v16.9.1-linux-x64.tar.xz
    
    mv node-v16.9.1-linux-x64  nodejs 
    

    在这里插入图片描述
    在这里插入图片描述

    • 开始改名
      在这里插入图片描述
      在这里插入图片描述
    • 改好啦~~~
    • 确认一下nodejs下bin目录是否有node 和npm文件,如果有继续往下操作,如果没有继续重复上面操作
      在这里插入图片描述

    建立软连接,变为全局,检验nodejs是否已变为全局

    • 如果不是root用户需要加(sudo)
    ln -s /home/appmanager/nodejs/nodejs/bin/npm /usr/local/bin/ 
    ln -s /home/appmanager/nodejs/nodejs/bin/node /usr/local/bin/
    node -v 
    

    在这里插入图片描述

    创建一个app.js文件,随便写一个简单的nodejs,测试环境

    在这里插入图片描述

    var http = require('http');
    
    http.createServer(function (request, response) {
    
    
        response.writeHead(200, { 'Content-Type': 'text/plain' });
    
    
        response.end('Hello World
    ');
    }).listen(8090);
    
    console.log('Server running at http://127.0.0.1:8090/');
    
    
    

    在这里插入图片描述

    在这里插入图片描述

    解下来,我们要配置一下服务器的安全组策略

    在这里插入图片描述

    然后,打开网页测试一下

    在这里插入图片描述

    基本功能已经大功告成~~~

    • 备注:关于连接服务器,nodeJS的server.js文件里面 ,app.listen配置的ip地址不是服务器地址 , 而是私有地址 ,我这个没有配哦,直接就OK了

    pm2守护nodejs项目运行进程

    • 在这里 /home/appmanager/nodejs/nodejs 安装pm2,建立软连接
    npm install pm2 -g
    ln -s /home/appmanager/nodejs/nodejs/bin/pm2 /usr/local/bin/ 
    

    在这里插入图片描述
    在这里插入图片描述

    杀掉刚刚那个启动,重新使用PM2启动并输出日志:

    pm2 start app.js -e err.log -o out.log
    

    在这里插入图片描述
    在这里插入图片描述

    修改代码后,pm2重启服务

    • 将app.js修改一下,添加解决中文乱码问题的代码
    var http = require('http');
    
    http.createServer(function (request, response) {
    
        response.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});//只需要设置响应头的编码格式就好,解决中文乱码问题的代码
        // response.writeHead(200, { 'Content-Type': 'text/plain' }); // 原有代码
    
    
        response.end('Hello World--测试
    ');
    }).listen(8090);
    
    console.log('Server running at http://127.0.0.1:8090/');
    
    
    • 执行pm2重启命令
    pm2 restart app
    

    在这里插入图片描述
    在这里插入图片描述

    另外说一下:如果你需要不断修改代码,有热更新功能的话,建议使用supervisor,supervisor的功能是自动重启的话,pm2是永生

    补充一些其他的PM2常用命令

    • pm2 查看启动了哪些进程
    pm2 list
    
    • 关闭id 为pm2 list 显示的对应的pm2进程的id
    pm2 stop #id 
    
    • 重启pm2进程
    pm2 restart #id
    
    • 关闭所有
    pm2 stop all  
    
    • 启动所有
    pm2 start all
    
    • 删除pm2进程
    pm2 delete #id
    
    • 删除所有pm2进程
    pm2 delete all
    
    • pm2 可以启动任何类型的进程
    pm2 start app.js        //启动js文件
    pm2 start echo.php      //启动php文件
    pm2 start echo.py       //启动py文件
    pm2 start echo.sh       //启动sh文件
    pm2 start echo.rb       //启动ruby文件
    pm2 start app.json      //启动json文件
    pm2 start ./binary-app  //启动二进制代码
    
  • 相关阅读:
    C语言之setjmp
    指针和数组的千丝万缕(二)
    函数和指针的运用
    程序员的几个好的博客地址
    C语言之setjmp
    指针和数组的千丝万缕(二)
    指针和数组的千丝万缕(一)
    函数和指针的运用
    指针和数组的千丝万缕(一)
    poj3300
  • 原文地址:https://www.cnblogs.com/sugartang/p/15334444.html
Copyright © 2011-2022 走看看