如何在 VPS 上创建 MongoDB 实例

热门:
升级您的服务器配置! 申请 AVA 并使用 立减 15%
使用优惠码:

如何在 VPS 上创建 MongoDB 实例

Virtual Private Server (VPS) 上部署 MongoDB 可让您完全掌控数据库基础设施——非常适合重视性能、灵活性和数据主权的开发者、初创公司和组织。本指南将带您完成在 VPS 上安装、配置、保护和优化 MongoDB 的高级步骤。

🛠️ 第 1 步:更新系统

sudo apt update && sudo apt upgrade -y

设置您的主机名和时区:

hostnamectl set-hostname mongodb-server
timedatectl set-timezone UTC

📦 第 2 步:安装 MongoDB

1. 导入 MongoDB GPG Key

wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-6.0.gpg

2. 添加 MongoDB Repository

echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list

注意:如果使用 Ubuntu 22.04,请将 focal 替换为 jammy 或您的版本。

3. 安装 MongoDB

sudo apt update
sudo apt install -y mongodb-org

🧪 第 3 步:启动并启用 MongoDB

sudo systemctl start mongod
sudo systemctl enable mongod

检查状态:

sudo systemctl status mongod

🔐 第 4 步:保护您的 MongoDB Server

默认情况下,MongoDB 绑定到 127.0.0.1。如果您想远程访问:

1. 编辑配置

sudo nano /etc/mongod.conf

在 net: 下找到 bindIp 行并修改:

bindIp: 127.0.0.1,0.0.0.0

2. 启用 Authentication

在 security: 部分下添加:

security:
authorization: enabled

重启 MongoDB:

sudo systemctl restart mongod

👤 第 5 步:创建管理员用户

访问 MongoDB shell:

mongosh

创建管理员用户:

use admin
db.createUser({
user: "admin",
pwd: "StrongPassword123!",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})

使用 exit 退出,然后测试登录:

mongosh -u admin -p --authenticationDatabase admin

🛡️ 第 6 步:加固 VPS 和 MongoDB

1. UFW Firewall

sudo ufw allow OpenSSH
sudo ufw allow 27017/tcp
sudo ufw enable

对于来自单个 IP 的远程访问:

sudo ufw allow from YOUR.IP.ADDRESS to any port 27017

2. Fail2Ban (SSH Protection)

sudo apt install fail2ban -y
sudo systemctl enable fail2ban

⚙️ 第 7 步:高级优化(可选)

1. 用于高可用性的 Replica Set

修改 /etc/mongod.conf:

replication:
replSetName: "rs0"

初始化:

mongosh
rs.initiate()

2. 备份策略

使用 mongodump 进行备份:

mongodump --out /var/backups/mongodb/$(date +%F)

使用 cron 自动化:

crontab -e
# Daily at 2 AM
0 2 * * * /usr/bin/mongodump --out /var/backups/mongodb/$(date +%F)

3. 使用 TLS/SSL 进行加密连接

生成证书并在 mongod.conf 中配置 net.ssl 部分。这需要更多设置以及受信任的 certificate authority (CA)。

🧪 第 8 步:测试您的部署

您可以测试远程连接:

mongosh "mongodb://admin:StrongPassword123!@your-server-ip:27017/admin"

将 your-server-ip 替换为您的 VPS IP 或域名。

📊 第 9 步:监控您的 MongoDB

可考虑以下工具:

  • MongoDB Atlas Monitoring Agent(可选)

  • Prometheus + Grafana 搭配 exporters

  • 使用 cron 和 logwatch 的自定义告警

您也可以直接查看日志:

sudo tail -f /var/log/mongodb/mongod.log

✅ 最终检查清单

  • MongoDB 已安装并运行

  • 远程访问已保护

  • 已强制管理员身份验证

  • 已配置 Firewall

  • 已设置备份

  • 已启用可选监控

🧩 结论

在 VPS 上运行 MongoDB 可为您带来无与伦比的灵活性,但也需要对安全、备份和性能给予细致关注。按照本指南操作后,您已经创建了一个安全且可用于生产环境的 MongoDB 实例,可随着应用增长而扩展。