当前位置: 首页 > news >正文

前端如何将node.js 和mongodb部署到linux服务器上

本文首发自掘金。

记录了我第一次成功部署node.js 和mongodb到linux服务器上了,期间也遇到一些小坑,但是网上各位大佬记录的文章帮了大忙,所以我也将过程记录了下来。

安装Node

使用nvm

linux上安装node,肯定首选nvm,因为这样可以控制node的版本。

安装git:

sudo apt install git# 安装完后运行一下验证是否安装成功
git --version

pull nvm的代码的:

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

安装完nvm后,就可以执行以下nvm的常见命令:

# 安装最新版本命令
nvm install node#  查看远程版本
nvm ls-remote# 查看安装的版本
nvm ls# 查看当前使用版本
nvm current# 安装具体版本
nvm install v18.15.0# 使用安装的版本
nvm use v18.15.0

升级ubuntu版本

我安装的是node 18.15,然后由于我装的Ubuntu 版本老旧,导致我无法运行node,报错为node: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.28 not found (required by node)

然后是这条stackoverflow的答案救了我,具体就是升级了ubuntu的版本:

image.png

使用pm2运行代码

接下来,就是让node代码跑起来。我是把代码上传到github,然后直接pull到服务器上跑。这里使用pm2来监控和运行node服务:

# 安装
npm i -g pm2# 跑项目
pm2 start xxx.js
# 或者跑项目的时候为项目名个名字
pm2 start xxx.js --name server-pdd# 查看运行了哪些进程
pm2 list# 停止进程
pm2 stop server-pdd # 重启
pm2 reload server-pdd
## 重启所有
pm2 reload all# 删除某个进程
pm2 delete server-pdd# 查看进程的详情
pm2 show server-pdd# 监控性能
pm2 monit

image.png

Mongodb

安装运行

我是直接按照官网教程操作的,教你如何下载安装mongodb,运行,停止。

我遇到的问题:本地无法连接远程的mongodb ,最后是参考这篇文章来解决的:https://www.digitalocean.com/community/tutorials/how-to-configure-remote-access-for-mongodb-on-ubuntu-20-04

原因:

  1. 没有让防火墙放通
  2. 没有让mongodb bind ip
  3. 完成前面2步后,没有重启mongodb

一切都搞定后,有空记得看看mongodb的官网教程。哈哈,我也没有看,需要的时候再看吧。

设置用户名密码

虽然是练手用的,但是还是设置一下用户名和密码比较好。可参考简书上的这篇文章和官网文档。

输入mongosh 进入mongodb的交互式终端:

Pasted image 20230311085954.png

# 切换到admin数据库
use admin# 创建管理员
db.createUser({user: "admin",pwd: passwordPrompt(),roles: [{ role: "userAdminAnyDatabase", db: "admin" },{ role: "readWriteAnyDatabase", db: "admin" }]}
)

配置好管理员后,然后在/etc/mongod.conf配置文件中开启权限校验,然后重启mongod。

sudo su - root
nano /etc/mongod.conf# 在 /etc/mongod.conf 增加下面2行
security:authorization: enabled# 重启
sudo systemctl restart mongod

然后重新运行mongosh终端,会显示连接成功了,但是无法执行其他命令:

image.png

# 切换到admin数据库后登录
use admin
db.auth('admin', '123456')# 如果是远程连接的话,url就变成了mongodb://admin:123456@你的服务器ip:27017/

命令行

记录一下我觉得比较有用的命令行。

netstat -nltp  # 查看服务器网络连接状态
root@VM-24-5-ubuntu:~# netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:27017           0.0.0.0:*               LISTEN      298356/mongod       
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/init              
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      992/systemd-resolve 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      112156/sshd: /usr/s 
tcp6       0      0 :::111                  :::*                    LISTEN      1/init              
tcp6       0      0 :::22                   :::*                    LISTEN      112156/sshd: /usr/s 

切换为管理员:

sudo su - root

mongodb启动终止操作:

## 启动
sudo systemctl start mongod## 验证状态
sudo systemctl status mongod## 停止运行
sudo systemctl stop mongod## 重启
sudo systemctl restart mongod

总结

遇到问题就多查询,Stack Overflow上总有解决办法的。就算完全搞砸了,也没有关系,不管你用的哪个云服务器厂商的服务器都可以一键重装系统再次尝试。实在实在不行,还可以通过宝塔面板来可视化操作。

http://www.lryc.cn/news/45402.html

相关文章:

  • mysql数据迁移
  • 【4.3蓝桥备战】小朋友崇拜圈、正则问题
  • MySQL读写分离中间件
  • 【Spring源码设计模式】单例模式外带设计模式的单例模式
  • go并发编程 —— singleflight设计模式
  • 【LeetCode】二叉树的中序遍历(递归,迭代,Morris遍历)
  • 银行数字化转型导师坚鹏:数字化转型背景下的银行柜员提升之道
  • ChatGPT的平替来了?一文总结 ChatGPT 的开源平替,你值得拥有
  • 关于数据同步工具DataX部署
  • 如何开发JetBrains插件
  • 企业采购成本管理的难题及解决方案
  • 龙蜥白皮书精选:基于 SM4 算法的文件加密(fscrypt)实践
  • 【SpringBoot入门】SpringBoot的配置
  • react 学习整理
  • 物理引擎系统-ode
  • 函数设计—参数规则
  • rsync远程同步
  • 中国大陆IP段(仅大陆地区)【2020-07-24】
  • 从零开始的嵌入式Linux生活(一) 背景介绍
  • 后缀为whl的文件是什么?如何安装whl文件?学习一下(22)
  • 整合Juit
  • C#,码海拾贝(11)——拉格朗日(Lagrange)三点式曲面插值算法,《C#数值计算算法编程》源代码升级改进版
  • CentOS7系统安装MySQL 5.7
  • 基于粒子群算法优化BP神经网络的高炉si预测,PSO-BP
  • STM32输出PWM波控制电机转速,红外循迹避障智能车+L298N的详细使用手册、接线方法及工作原理,有代码
  • 3、AI的道德性测试
  • 银行数字化转型导师坚鹏:银行业务需求分析师技能快速提升之道
  • C++IO流
  • 交友项目【后端环境搭建】
  • 大事务问题解决方案