Einführung
MongoDB ist eine kostenlose und Open-Source-Datenbank für NoSQL-Dokumente, die häufig in modernen Webanwendungen verwendet wird. Dieses Tutorial hilft Ihnen, MongoDB auf Ihrem Server für eine Produktionsanwendungsumgebung einzurichten.
Voraussetzungen
Um diesem Tutorial zu folgen, benötigen Sie:
-
Ein Ubuntu 16.04-Server, der gemäß dieseninitial server setup tutorial eingerichtet wurde, einschließlich eines Sudo-Nicht-Root-Benutzers und einer Firewall.
[[Schritt-1 - Hinzufügen des Mongodb-Repositorys]] == Schritt 1 - Hinzufügen des MongoDB-Repositorys
MongoDB ist bereits in Ubuntu-Paket-Repositories enthalten, aber das offizielle MongoDB-Repository bietet die aktuellste Version und ist die empfohlene Methode zur Installation der Software. In diesem Schritt fügen wir dieses offizielle Repository unserem Server hinzu.
Ubuntu stellt die Authentizität von Software-Paketen sicher, indem überprüft wird, ob sie mit GPG-Schlüsseln signiert sind. Daher müssen sie zunächst für das offizielle MongoDB-Repository importiert werden.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
Nach dem erfolgreichen Import des Schlüssels wird Folgendes angezeigt:
Ausgabe
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
Als nächstes müssen wir die MongoDB-Repository-Details hinzufügen, damitapt
wissen, von wo die Pakete heruntergeladen werden können.
Geben Sie den folgenden Befehl ein, um eine Listendatei für MongoDB zu erstellen.
echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
Nach dem Hinzufügen der Repository-Details müssen wir die Paketliste aktualisieren.
sudo apt-get update
[[Schritt-2 - Installieren und Überprüfen von Mongodb]] == Schritt 2 - Installieren und Überprüfen von MongoDB
Jetzt können wir das MongoDB-Paket selbst installieren.
sudo apt-get install -y mongodb-org
Mit diesem Befehl werden mehrere Pakete installiert, die die neueste stabile Version von MongoDB sowie hilfreiche Verwaltungstools für den MongoDB-Server enthalten.
Starten Sie anschließend MongoDB mitsystemctl
.
sudo systemctl start mongod
Sie können auchsystemctl
verwenden, um zu überprüfen, ob der Dienst ordnungsgemäß gestartet wurde.
sudo systemctl status mongod
Ausgabe
● mongodb.service - High-performance, schema-free document-oriented database
Loaded: loaded (/etc/systemd/system/mongodb.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2016-04-25 14:57:20 EDT; 1min 30s ago
Main PID: 4093 (mongod)
Tasks: 16 (limit: 512)
Memory: 47.1M
CPU: 1.224s
CGroup: /system.slice/mongodb.service
└─4093 /usr/bin/mongod --quiet --config /etc/mongod.conf
Der letzte Schritt besteht darin, das automatische Starten von MongoDB beim Systemstart zu aktivieren.
sudo systemctl enable mongod
Der MongoDB-Server ist jetzt konfiguriert und wird ausgeführt, und Sie können den MongoDB-Dienst mit dem Befehlsystemctl
verwalten (z. sudo systemctl stop mongod
,sudo systemctl start mongod
).
[[Schritt 3 - Anpassen der Firewall - optional]] == Schritt 3 - Anpassen der Firewall (optional)
Angenommen, Sie haben die Anweisungen voninitial server setup tutorialbefolgt, um die Firewall auf Ihrem Server zu aktivieren, ist der Zugriff auf den MongoDB-Server über das Internet nicht möglich.
Wenn Sie beabsichtigen, den MongoDB-Server nur lokal mit Anwendungen zu verwenden, die auf demselben Server ausgeführt werden, ist dies eine empfohlene und sichere Einstellung. Wenn Sie jedoch über das Internet eine Verbindung zu Ihrem MongoDB-Server herstellen möchten, müssen wir die eingehenden Verbindungen inufw
zulassen.
Um von überall aus auf MongoDB über den Standardport27017
zugreifen zu können, können Siesudo ufw allow 27017
verwenden. Wenn Sie jedoch den Internetzugriff auf den MongoDB-Server in einer Standardinstallation aktivieren, erhalten Sie uneingeschränkten Zugriff auf den gesamten Datenbankserver.
In den meisten Fällen sollte auf MongoDB nur von bestimmten vertrauenswürdigen Speicherorten aus zugegriffen werden, z. B. von einem anderen Server, auf dem sich eine Anwendung befindet. Um diese Aufgabe auszuführen, können Sie den Zugriff auf den Standardport von MongoDB zulassen, während Sie die IP-Adresse eines anderen Servers angeben, der explizit eine Verbindung herstellen darf.
sudo ufw allow from your_other_server_ip/32 to any port 27017
Sie können die Änderung der Firewall-Einstellungen mitufw
überprüfen.
sudo ufw status
In der Ausgabe sollte der Datenverkehr zum27017
-Port zulässig sein. Wenn Sie entschieden haben, nur eine bestimmte IP-Adresse für die Verbindung zum MongoDB-Server zuzulassen, wird anstelle vonAnywhere die IP-Adresse des zulässigen Speicherorts aufgeführt in der Ausgabe.
Ausgabe
Status: active
To Action From
-- ------ ----
27017 ALLOW Anywhere
OpenSSH ALLOW Anywhere
27017 (v6) ALLOW Anywhere (v6)
OpenSSH (v6) ALLOW Anywhere (v6)
Erweiterte Firewall-Einstellungen zum Einschränken des Zugriffs auf Dienste werden inUFW Essentials: Common Firewall Rules and Commands beschrieben.
Fazit
Ausführlichere Anweisungen zur Installation und Konfiguration von MongoDB finden Sie inthese DigitalOcean community articles.