介绍
MongoDB 是一个免费和开源的 NoSQL 文档数据库,通常用于现代 Web 应用程序,本教程将帮助您在您的服务器上设置 MongoDB 用于生产应用环境。
前提条件
要遵循本教程,您将需要:
- 一个 Ubuntu 16.04 服务器通过遵循此 初始服务器设置教程设置,包括一个 sudo 非 root 用户和一个防火墙。
步骤 1 – 添加 MongoDB 存储库
MongoDB 已经包含在 Ubuntu 包存储库中,但官方 MongoDB 存储库提供了最新的版本,是安装软件的推荐方式。
Ubuntu 通过验证它们是用 GPG 密钥签名的来确保软件包的真实性,所以我们必须先将它们导入到官方 MongoDB 存储库中。
1wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
成功导入密钥后,您将看到:
1[label Output]
2OK
接下来,我们必须添加MongoDB存储详细信息,以便apt
知道从哪里下载包。
发出以下命令来创建 MongoDB 的列表文件。
1echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
添加库详细信息后,我们需要更新包列表。
1sudo apt-get update
步骤 2:安装和验证 MongoDB
现在我们可以安装MongoDB包本身。
1sudo apt-get install -y mongodb-org
此命令将安装包含 MongoDB 最新的稳定版本的多个包,以及 MongoDB 服务器的有用的管理工具。
接下来,用systemctl
启动 MongoDB。
1sudo systemctl start mongod
您还可以使用systemctl
来检查服务是否正确启动。
1sudo systemctl status mongod
1[label Output]
2● mongodb.service - High-performance, schema-free document-oriented database
3 Loaded: loaded (/etc/systemd/system/mongodb.service; enabled; vendor preset: enabled)
4 Active: active (running) since Mon 2016-04-25 14:57:20 EDT; 1min 30s ago
5 Main PID: 4093 (mongod)
6 Tasks: 16 (limit: 512)
7 Memory: 47.1M
8 CPU: 1.224s
9 CGroup: /system.slice/mongodb.service
10 └─4093 /usr/bin/mongod --quiet --config /etc/mongod.conf
最后一步是启用系统启动时自动启动 MongoDB。
1sudo systemctl enable mongod
MongoDB 服务器现在已配置并运行,您可以使用systemctl
命令来管理 MongoDB 服务(例如sudo systemctl stop mongod
,sudo systemctl start mongod
).
步骤 3 – 调整防火墙(可选)
假設您已遵循 初始伺服器安裝教程的指示,在您的伺服器上啟用防火牆,MongoDB伺服器將無法從互聯網上存取。
如果您打算只在本地使用MongoDB服务器,并在同一服务器上运行应用程序,这是一个建议和安全的设置,但是,如果您想能够从互联网连接到您的MongoDB服务器,我们必须允许ufw
中的入口连接。
要允许从任何地方访问MongoDB的默认端口27017
,您可以使用sudo ufw allow 27017
。
在大多数情况下,MongoDB 只能从某些受信任的位置访问,例如另一个服务器托管应用程序. 为了完成此任务,您可以允许访问 MongoDB 的默认端口,同时指定另一个服务器的 IP 地址,该服务器将被明确允许连接。
1sudo ufw allow from your_other_server_ip/32 to any port 27017
您可以通过ufw
验证防火墙设置的更改。
1sudo ufw status
如果您决定只允许某个特定 IP 地址连接到 MongoDB 服务器,则允许位置的 IP 地址将在输出中列出,而不是 _Anywhere。
1[label Output]
2Status: active
3
4To Action From
5-- ------ ----
627017 ALLOW Anywhere
7OpenSSH ALLOW Anywhere
827017 (v6) ALLOW Anywhere (v6)
9OpenSSH (v6) ALLOW Anywhere (v6)
限制访问服务的更先进的防火墙设置在 UFW Essentials: Common Firewall Rules and Commands中描述。
结论
您可以在 这些 DigitalOcean 社区文章中找到有关 MongoDB 安装和配置的更深入的说明。