最新公告
  • 欢迎您光临网站无忧模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 详解Linux服务器中部署Nodejs项目的方法

    正文概述 六哥   2021-06-1   44

    本篇文章详细介绍一下Linux部署Nodejs项目的方法,手把手教你在 Linux 服务器部署 NodeJs 项目。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

    登录服务器

    采用 GitBash 或者 Xshell 或者 CMD 等终端登录连接到服务器

    ssh 用户名@ip地址

    假如第一次使用服务器先更新下,以下程序基本采用 Yum 源的安装方式:

    yum update -y

    Yum 命令

    // 1 安装 
    yum install package  // 安装指定的安装包package 
    
    // 2 更新和升级 
    yum update  // 全部更新 
    yum update package  // 更新指定程序包package
    yum check-update  // 检查可更新的程序 
    yum upgrade package  // 升级指定程序包package 
    
    // 3 查找和显示 
    yum info // 列出所有可以安装或更新的包的信息
    yum info package //显示安装包信息package 
    yum list // 显示所有已经安装和可以安装的程序包 
    yum list package  // 显示指定程序包安装情况package
    yum search package // 搜索匹配特定字符的package的详细信息
    
    // 4 删除程序 
    yum remove | erase package  // 删除程序包package
    yum deplist package  // 查看程序package依赖情况
    
    // 5 清除缓存 
    yum clean packages  // 清除缓存目录下的软件包 
    yum clean headers // 清除缓存目录下的 headers 
    yum clean oldheaders // 清除缓存目录下旧的 headers 
    yum clean, yum clean all  // (= yum clean packages; yum clean oldheaders) 清除缓存目录下的软件包及旧的headers

    Git 安装

    服务器下安装 git;开发源码上传服务器的方式可以使用 传统的 scp 或者 ftp 方式,但这里使用 Git 流来管理,在服务器端执行 git 操作;

    2.1、查看是否安装了git

    rpm -qa|grep git
    或者
     git --version
    或者
     yum info git

    1.png

    2.png

    若已经安装,需要先卸载。卸载命令如下:rpm -e --nodeps git 或者 rpm -e git

    3.png

    2.2、安装Git

    yum install git

    4.png

    输入y,并回车

    5.png

    再使用 rpm -qa|grep git 来 或者 git version 查看是否已经安装好了Git。

    6.png

    2.3、克隆远程项目到服务器

    Node 安装

    服务器下安装,选择以下任意一种方法部署Node.js环境;

    3.1、使用二进制文件安装

    该部署过程使用的安装包是已编译好的二进制文件。解压之后,在bin文件夹中就已存在nodenpm,无需重复编译。
    完成以下操作,使用二进制文件部署Node.js环境:
    下载Node.js安装包

    wget nodejs.org/dist/v6.9.5…

    解压文件

    tar xvf node-v6.9.5-linux-x64.tar.xz

    创建软链接,您就可以在任意目录下直接使用nodenpm命令

    ln -s /root/node-v6.9.5-linux-x64/bin/node /usr/local/bin/node
    ln -s /root/node-v6.9.5-linux-x64/bin/npm /usr/local/bin/npm

    查看 nodenpm 版本

    node -v
    npm -v

    至此,Node.js环境已安装完毕。软件默认安装在/root/node-v6.9.5-linux-x64/目录下

    如果需要将该软件安装到其他目录(例如:/opt/node/)下,请进行如下操作:

    mkdir -p /opt/node/
    mv /root/node-v6.9.5-linux-x64/* /opt/node/
    rm -f /usr/local/bin/node
    rm -f /usr/local/bin/npm
    ln -s /opt/node/bin/node /usr/local/bin/node
    ln -s /opt/node/bin/npm /usr/local/bin/npm

    3.2、使用 NVM 管理多版本(yum 安装)

    NVM(Node Version Manager)是Node.js的版本管理软件,使您可以轻松在Node.js各个版本间进行切换。适用于长期做node开发的人员或有快速更新node版本、快速切换node版本的场景

    完成以下操作,使用NVM安装多个 Node.js 版本:

    使用git将源码克隆到本地的~/.nvm目录下,并检查最新版本

    yum install git

    git clone https://github.com/cnpm/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`

    激活NVM

    echo ". ~/.nvm/nvm.sh" >> /etc/profile
    source /etc/profile

    列出Node.js的所有版本

    nvm list-remote

    安装多个Node.js版本

    nvm install v14.0.0 -g
    nvm install v14.10.0 -g

    运行nvm ls查看已安装的 Node.js 版本,当前使用的版本为v7.4.0。返回结果如下所示

    [root@iZXXXXZ .nvm]# nvm ls
          v6.9.5
    ->    v7.4.0
          system
    stable -> 7.4 (-> v7.4.0) (default)
    unstable -> 6.9 (-> v6.9.5) (default)

    运行nvm use v7.4.0切换Node.js版本至v7.4.0。返回结果如下所示。

    [root@iZXXXXZ .nvm]# nvm use v7.4.0
    Now using node v7.4.0

    Nginx 部署

    服务器下安装;

    sudo yum install -y nginx
    // 检测是否安装成功,验证 Nginx 配置是否正确;
    nginx -t
    
    启动命令 service nginx start
    停止命令 service nginx stop
    重启命令 service nginx restart
    # config: /etc/nginx/nginx.conf 安装目录
    # config: /etc/sysconfig/nginx
    # pidfile: /var/run/nginx.pid
    日志文件在var/log/nginx

    Pm2 安装

    工程项目内安装,cd 至项目内;

    npm i pm2 -g

    启动项目

    pm2 start app // 实际执行文件在app 工程下的 index.js

    pm2 常用命令:

    // 安装
    sudo npm i pm2 -g
     --watch:监听文件变化
     // 2表示启动多少实例
    pm2 start app.js --watch i 2
     // 根据机器cpu核心数最大限度利用资源
    pm2 start app -i max
    
     // 查看运行的进程
    pm2 ls
    
     // 关闭
    pm2 stop app
    pm2 stop all
    
    // 重启
    pm2 restart app

    我们也可以在项目中建一个 process.yml 配置文件

    apps:
      - script : app.js
        intance : 2
        watch : true
        env : 
          NODE_ENV : production

    然后执行

    pm2 start process.yml

    MongoDB 安装

    工程项目内安装;使用 Yum 源安装;

    配置系统yum源

    vi /etc/yum.repos.d/mongodb-org-4.4.repo
    添加以下信息:

    [mongodb-org-4.4]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
    
    
    name         # 名称
    baseurl      # 获得下载的路径
    gpkcheck=1   # 表示对从这个源下载的rpm包进行校验;
    enable=1     # 表示启用这个源。
    gpgkey       # gpg验证

    最新 MongoDB 配置地址:

    docs.mongodb.com/manual/tuto…

    保存退出:
    :wq
    
    退出不保存
    :wq!

    安装MongoDB

    sudo yum install -y mongodb-org

    验证

    rpm -qa |grep mongodb
    
    rpm -ql mongodb-org-server

    运行结果分别如下图:

    7.png

    启动MongoDB(常用指令)

    // 开启MongoDB
    sudo service mongod start  或者
    systemctl start mongod.service  
    
    sudo chkconfig mongod on  # 加入开机启动
    sudo service mongod restart # 重启MongoDB
    
    // 关闭MongoDB
    sudo service mongod stop  # 关闭防火墙
    
    // 卸载MongoDB
    sudo yum erase $(rpm -qa | grep mongodb-org)    # 卸载MongoDB
    sudo rm -r /var/log/mongodb  # 删除日志文件
    sudo rm -r /var/lib/mongo    # 删除数据文件

    实现远程连接Mongodb

    修改绑定 ip 默认127.0.0.1 只允许本地连接, 所以修改为 bindIp:0.0.0.0,退出保存;.1

    vi /etc/mongod.conf
    
    // 编辑以下内容
    // network interfaces
    net:
      port: 27017
      bindIp: 0.0.0.0  # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.

    重启MongoDB

    sudo service mongod restart 
    复制代码

    开放对外端口,关闭防火墙

    iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 27017 -j ACCEPT

    远程连接

    // 启动 MongoDB 服务,后面是服务器公网 ip 地址 + 默认端口 27017
    mongo 10.128.218.14:27017

    1.0 创建用户,设置账号,密码,权限

    // admin数据库(管理使用)
    > use admin
    switched to db admin
    > db.createUser({ user:"root", pwd:"123456", roles:["root"] })
    Successfully added user: { "user" : "root", "roles" : [ "root" ] }
    
    // 其他数据库 test (用作开发使用)
    > use test
    switched to db test
    > db.createUser({ user:"admin", pwd:"123456", roles:["readWrite", "dbAdmin"] })
    Successfully added user: { "user" : "root", "roles" : [ "root" ] }

    2.0 修改 mongodb.conf 文件,启用身份验证

    vi /etc/mongod.conf
    
    security:
      authorization: "enabled"   # disable or enabled

    3.0 重启 MongoDB

    sudo service mongod restart

    4.0 用户认证

    > use admin
    switched to db admin
    > db.auth("root", "123456")
    1 // 授权成功
     
    // 其他常用命令
    db.updateUser(user, writeConcern) # 更新用户
    db.dropUser('test') # 删除用户

    5.0 远程连接

    // 终端连接
    mongo 10.128.218.14:27017/database -u username -p password
    
    // mongoose方式连接(项目内的方式)
    mongoose.connect('mongodb://admin:123456@10.128.218.14:27017/test?options...', {useNewUrlParser: true});
    
    # 用户名:密码@域名或者服务器公网IP:端口/数据库名称?配置项

    Window本地启动 MongoDB:

    1.0 管理员身份打开 cmd ;

    2.0 进入本地 MongoDB 安装目录 cd C:\Program Files\MongoDB\Server\4.4

    3.0 执行 net start mongodb

    8.png

    其他命令

    1、端口被占用了:检查端口占用命令. 根据报错提示, 我这里检查的是 4000 端口:

    lsof -i:4000

    9.png

    2、杀掉当前进程

    kill 2805

    在执行

    npm run dev

    可以了!!!
    查看服务器个程序占用内存大小

    du -h --max-depth=1

    10.png

    Linux shell 脚本

    自己编写服务运行脚本,直接在服务器上运行,下面是运行指令,脚本内容这里就不展示了,可以自己补充 xshell 脚本相关知识。

    sh run.sh // 启动服务脚本;
    sh stop.sh // 启动服务脚本;
    netstat -nltp  // 当前服务器端口状态;

    更多编程相关知识,请访问:编程入门!!

    以上就是详解Linux服务器中部署Nodejs项目的方法的详细内容,更多请关注网站无忧资源网其它相关文章!


    网站无忧 » 详解Linux服务器中部署Nodejs项目的方法

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    发表评论

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者
    升级SVIP尊享更多特权立即升级