返回首页

后端服务如何部署(express + mongoDB)

布莱克2025-11-22 17:02
Tip:文章封面与内容无关,作者旅游时拍摄,因为没什么值得把四季都错过!

关于后端服务如何部署在服务器上


## 关于我的后端使用的是express + mongoDB,因此以这个为例说明一下

数据库配置

1.确认系统架构

uname -m

输出应为 x86_64aarch64

2.导入 MongoDB GPG 密钥

sudo rpm --import https://www.mongodb.org/static/pgp/server-6.0.asc

3.创建 MongoDB 仓库文件

sudo tee /etc/yum.repos.d/mongodb-org-6.0.repo << 'EOF'
[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
EOF

若系统是 arm64 架构,将 baseurl 中的 x86_64 改为 aarch64

4.安装 MongoDB

sudo dnf install -y mongodb-org

5.启动 MongoDB 并设置开机自启

# 启动服务
sudo systemctl start mongod
# 设置开机自启
sudo systemctl enable mongod
# 验证状态(显示 active(running) 则成功)
sudo systemctl status mongod

连接MongoDB并创建用户

mongosh

1. 切换到 admin 数据库(系统默认管理员库)

use admin

2. 创建超级管理员(替换 用户名/密码 为你的强密码)

db.createUser({
  user: "rootAdmin",  # 管理员用户名
  pwd: "你的超级复杂密码",  # 建议包含大小写、数字、符号
  roles: [{ role: "root", db: "admin" }]  # 最高权限
})

3. 创建项目专用数据库用户(例如项目数据库叫 myexpressdb)

use myexpressdb  # 切换到你的项目数据库(不存在会自动创建)
db.createUser({
  user: "projectUser",  # 项目数据库用户名
  pwd: "项目数据库密码",  # 单独的密码,避免和管理员密码一致
  roles: [{ role: "readWrite", db: "myexpressdb" }]  # 仅读写该库的权限
})

修改并重启mongoDB配置

sudo vim /etc/mongod.conf

添加内容

security:
  authorization: enabled

重启 MongoDB 使配置生效

# 重启服务
sudo systemctl restart mongod
# 验证状态(确保 active(running),无报错)
sudo systemctl status mongod
# 测试认证是否生效(用项目用户连接,需输入密码)
mongosh mongodb://projectUser:项目数据库密码@localhost:27017/myexpressdb

express项目

上传你的项目到服务器

scp -r ./one 用户名@服务器地址:/home/express-one

进入对应目录

配置.env文件 (配置为localhost连接,无需开放阿里云27017端口,若开放会不安全)

PORT=4000
MONGODB_URI=mongodb://数据库用户名:密码@localhost:27017/数据库名称?authSource=数据库名称
MONGODB_DB=数据库名称

启动express项目

# 进入项目目录,启动入口文件(如 app.js、server.js)

pm2 start app.js --name "my-express"  # --name 自定义进程名,方便管理

查看状态

pm2 log my-express

进行nginx配置

assistant