Economisiți 15% la toate serviciile de găzduire

Testează-ți abilitățile și obține Reducere la orice plan de găzduire

Utilizați codul: Skills Începeți
Secțiuni
Administrație Linux Servere virtuale

Cum să instalezi și să configurezi MongoDB pe un VPS (Ghid complet 2024)

MongoDB este una dintre cele mai adoptat NoSQL databases din lume — și din bună dreptate. Modelul său flexibil de documente, performanța ridicată de citire/scriere și scalabilitatea orizontală nativă o fac alegerea preferată pentru API-uri moderne, platforme SaaS, CRM-uri, motoare de e-commerce și aplicații cu consum intensiv de date. Spre deosebire de serviciile de baze de date cloud gestionate, rularea MongoDB pe propriul tău VPS Hosting îți oferă control complet asupra ajustării performanțelor, întăririi securității și costurilor pe termen lung.

Acest ghid te ghidează printr-o instalare MongoDB Community Edition 8.0 de nivel producție pe un VPS Linux — acoperind configurarea depozitului oficial pentru Debian 12 și Ubuntu LTS, gestionarea serviciilor, crearea utilizatorilor și bazelor de date, întărirea securității (autentificare, legare rețea, reguli firewall), strategii de backup și pași comuni de depanare. Indiferent dacă lansezi prima ta aplicație sau migrezi o sarcină de lucru existentă, acest ghid pune MongoDB în funcțiune în mod fiabil din prima zi.

1. Condiții preliminare

Înainte de a începe, asigurați-vă că sunt îndeplinite următoarele condiții:

CerințăDetalii
Acces VPSAcces SSH la nivel root sau sudo
Sistem de operare64-bit Debian 12 (Bookworm) sau Ubuntu 22.04/24.04 LTS
RAMMinim 1 GB; 2 GB+ recomandat pentru producție
StocareStocare SSD puternic recomandată
FirewallUFW sau iptables disponibil

> Important: MongoDB 8.0 suportă oficial Debian 12 și versiunile Ubuntu LTS. Instalați întotdeauna din depozitele oficiale MongoDB — nu utilizați pachetul mongodb inclus în distribuția dvs. Linux, deoarece este depășit, nesuportat și poate intra în conflict cu pachetul oficial mongodb-org.

Dacă nu aveți încă un server, planurile VPS Hosting ale AlexHost oferă instanțe VPS Linux cu sprijin SSD pe infrastructură de înaltă performanță — ideale pentru rularea sarcinilor de baze de date în producție.

Actualizați mai întâi sistemul dvs.

Întotdeauna începeți cu un sistem complet actualizat:

sudo apt-get update && sudo apt-get -y upgrade
sudo apt-get install -y gnupg curl

2. Instalați MongoDB pe Debian 12 (Bookworm)

MongoDB nu este disponibil în depozitele Debian implicite, deci trebuie să adăugați manual depozitul oficial MongoDB APT.

Pasul 1 — Importați cheia de semnare GPG MongoDB

curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | 
  sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-8.0.gpg

Aceasta descarcă și stochează cheia GPG utilizată pentru a verifica integritatea pachetelor. Fără acest pas, APT va refuza să instaleze pachete din depozitul MongoDB.

Pasul 2 — Adăugați depozitul oficial MongoDB

echo "deb [signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg] 
https://repo.mongodb.org/apt/debian bookworm/mongodb-org/8.0 main" | 
  sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list > /dev/null

Pasul 3 — Instalați MongoDB Community Edition

sudo apt-get update
sudo apt-get install -y mongodb-org

APT va extrage acum cea mai recentă versiune MongoDB 8.0 direct din CDN oficial MongoDB.

3. Instalați MongoDB pe Ubuntu LTS (24.04 / 22.04)

Procesul este aproape identic cu Debian, dar URL-ul depozitului diferă după codenumele Ubuntu.

Pasul 1 — Importați cheia de semnare GPG MongoDB

curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | 
  sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg --dearmor

Pasul 2 — Adăugați depozitul pentru versiunea dvs. Ubuntu

Ubuntu 24.04 (Noble Numbat):

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] 
https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | 
  sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

Ubuntu 22.04 (Jammy Jellyfish):

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] 
https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/8.0 multiverse" | 
  sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

Pasul 3 — Instalați MongoDB Community Edition

sudo apt-get update
sudo apt-get install -y mongodb-org

4. Porniți și activați serviciul MongoDB

După instalare, utilizați systemctl pentru a porni MongoDB și configurați-l să se lanseze automat la repornirea serverului.

sudo systemctl daemon-reload
sudo systemctl start mongod
sudo systemctl enable mongod
sudo systemctl status mongod --no-pager

De ce daemon-reload?

Documentația oficială MongoDB recomandă în mod specific rularea systemctl daemon-reload înainte de a porni serviciul. Dacă omiteți acest pas și vedeți eroarea "Unit mongod.service not found", rulați mai întâi daemon-reload — aceasta forțează systemd să relcitească fișierele de unitate de pe disc.

Rezultat așteptat

Un serviciu MongoDB sănătos va afișa o ieșire similară cu:

● mongod.service - MongoDB Database Server
     Loaded: loaded (/lib/systemd/system/mongod.service; enabled)
     Active: active (running) since ...

Dacă starea arată failed sau inactive, accesați secțiunea Depanare.

5. Creați Baze de Date și Utilizatori

MongoDB nu impune autentificarea implicit după o instalare proaspătă. Aceasta înseamnă că ar trebui să creați utilizatorii dvs. admin și aplicație înainte de a activa autentificarea — altfel riscați să vă blocați accesul.

Deschideți MongoDB Shell

Conectați-vă la MongoDB local pe VPS:

mongosh

Pasul 1 — Creați un Utilizator Administrator

Comutați la baza de date admin și creați un cont admin privilegiat:

use admin

db.createUser({
  user: "admin",
  pwd: "STRONG_PASSWORD_HERE",
  roles: [
    { role: "userAdminAnyDatabase", db: "admin" },
    { role: "readWriteAnyDatabase", db: "admin" }
  ]
})

> Sfat de securitate: Înlocuiți STRONG_PASSWORD_HERE cu o parolă generată aleatoriu de cel puțin 20 de caractere. Utilizați un manager de parole sau rulați openssl rand -base64 24 pe serverul dvs. pentru a genera una.

Pasul 2 — Creați o Bază de Date de Aplicație și Utilizator

Creați o bază de date dedicată și un utilizator cu privilegii minime limitat doar la acea bază de date:

use myapp

db.createUser({
  user: "myapp_user",
  pwd: "STRONG_PASSWORD_HERE",
  roles: [
    { role: "readWrite", db: "myapp" }
  ]
})

Aceasta urmează principiul privilegiilor minime — aplicația dvs. are acces doar la citire/scriere la propria bază de date, nu la întreaga instanță MongoDB.

Pasul 3 — Verificați că Utilizatorii au fost Creați

use admin
db.getUsers()

Ieșiți din shell:

exit

6. Securizați-vă instanța MongoDB

Aceasta este secțiunea cea mai critică a ghidului. Instanțele MongoDB configurate incorect și expuse pe internetul public au fost responsabile pentru numeroase breșe de date de înaltă profil. Lista de verificare de securitate proprie a MongoDB este explicită: întăriți-vă instanța înainte de a o expune oricărei rețele.

A) Legați MongoDB doar la Localhost (Implicit recomandat)

În mod implicit, MongoDB poate asculta pe toate interfețele de rețea. Restricționați-o la localhost decât dacă aveți o nevoie specifică și justificată pentru acces de la distanță.

Editați /etc/mongod.conf:

net:
  bindIp: 127.0.0.1

Aplicați schimbarea:

sudo systemctl restart mongod

Aceasta asigură că MongoDB este accesibil doar din serverul însuși — nu din internetul public.

B) Activați autentificarea

Fără autentificare activată, orice proces local se poate conecta la MongoDB fără parolă. Editați /etc/mongod.conf:

security:
  authorization: enabled

Reporniți serviciul:

sudo systemctl restart mongod

Acum testați că autentificarea este aplicată:

mongosh -u admin -p --authenticationDatabase admin

C) Configurați firewall-ul

Dacă trebuie să permiteți conexiuni de la distanță (de exemplu, de la un server de aplicații pe o mașină diferită), restricționați portul 27017 doar la o adresă IP de încredere specifică. Nu deschideți niciodată portul 27017 la 0.0.0.0/0.

Folosind UFW:

sudo ufw allow from YOUR.TRUSTED.IP.ADDRESS to any port 27017 proto tcp
sudo ufw enable
sudo ufw status

Verificați că regula este activă:

sudo ufw status verbose

D) Utilizați SSH Tunneling pentru acces sigur de la distanță (Cea mai bună practică)

Cel mai sigur mod de a accesa MongoDB de la distanță este printr-un tunel SSH. Aceasta evită deschiderea portului 27017 în întregime și criptează tot traficul în tranzit.

De pe mașina locală:

ssh -L 27017:127.0.0.1:27017 root@YOUR_VPS_IP

Apoi conectați-vă din shell-ul MongoDB local ca și cum ar fi local:

mongosh "mongodb://myapp_user:PASS@127.0.0.1:27017/myapp?authSource=myapp"

Această abordare este puternic recomandată pentru dezvoltatori care accesează baze de date de producție de pe laptopuri sau stații de lucru de la distanță.

Rezumatul întăririi securității

Măsura de securitateLocația configurăriiPrioritate
Legați doar la localhost/etc/mongod.confnet.bindIpCritică
Activați autentificarea/etc/mongod.confsecurity.authorizationCritică
Restricția portului firewallUFW / iptablesÎnaltă
Tunel SSH pentru acces de la distanțăConfigurare SSH pe clientÎnaltă
Utilizați utilizatori DB cu privilegii minimemongoshdb.createUser()Înaltă
Mențineți MongoDB actualizatapt-get upgrade mongodb-orgMedie

7. Backup și Restore

Copiile de siguranță regulate sunt obligatorii pentru orice bază de date de producție. MongoDB include mongodump și mongorestore ca parte a pachetului MongoDB Database Tools.

Creați o arhivă de backup comprimată

mongodump 
  --username admin 
  --password STRONG_PASSWORD_HERE 
  --authenticationDatabase admin 
  --archive=/root/mongo-backup.archive 
  --gzip

Aceasta creează un singur fișier arhivă comprimat care conține o descărcare logică a tuturor bazelor de date.

Restaurare dintr-o arhivă de backup

mongorestore 
  --username admin 
  --password STRONG_PASSWORD_HERE 
  --authenticationDatabase admin 
  --archive=/root/mongo-backup.archive 
  --gzip

Automatizați copiile de siguranță cu Cron

Planificați copii de siguranță zilnice folosind cron:

crontab -e

Adăugați următoarea linie pentru a executa o copie de siguranță în fiecare zi la 2:00 AM:

0 2 * * * mongodump --username admin --password PASS --authenticationDatabase admin --archive=/root/backups/mongo-$(date +%F).archive --gzip

> Sfat profesional: Pentru redundanță în afara site-ului, luați în considerare sincronizarea arhivelor de backup la o locație de stocare externă folosind rsync sau rclone. Nu stocați niciodată singura copie de siguranță pe același server ca baza de date.

8. Depanare Probleme Comune

Verificați Jurnalele Serviciului

Primul loc de căutat atunci când MongoDB nu pornește sau se comportă neașteptat:

sudo journalctl -u mongod --no-pager -n 200

Aceasta afișează ultimele 200 de linii din jurnalul systemd al MongoDB — de obicei suficient pentru a identifica cauza rădăcinii.

Verificați că MongoDB Ascultă pe Portul Așteptat

sudo ss -lntp | grep 27017

Rezultatul așteptat dacă MongoDB rulează și este legat la localhost:

LISTEN  0  128  127.0.0.1:27017  0.0.0.0:*  users:(("mongod",...))

Dacă nu există rezultat, MongoDB nu rulează sau este legat la o interfață diferită.

Verificați Versiunea MongoDB Instalată

mongod --version

Mesaje de Eroare Comune și Remedieri

EroareCauza ProbabilăRemediere
Unit mongod.service not foundsystemd nu a încărcat fișierul unitățiiExecutați sudo systemctl daemon-reload
Address already in usePortul 27017 este ocupat de un alt procesExecutați `sudo ss -lntpgrep 27017` pentru a identifica conflictul
Authentication failedCredențiale greșite sau authSource greșitVerificați numele de utilizator, parola și authenticationDatabase
Connection refusedMongoDB nu rulează sau este legat la IP greșitVerificați bindIp în mongod.conf și starea serviciului
mongod.conf permission deniedProblemă de permisiuni de fișierExecutați sudo chmod 600 /etc/mongod.conf

9. Gânduri finale

Rularea MongoDB pe un VPS este o abordare dovedită și rentabilă pentru sarcinile de producție care necesită flexibilitate, performanță și control complet al infrastructurii. Urmând acest ghid, ați instalat MongoDB 8.0 din depozitele oficiale, ați configurat autentificarea și legarea rețelei, ați creat utilizatori de bază de date cu privilegii minime, ați configurat reguli de firewall și ați stabilit o rutină de backup.

Câteva puncte cheie de reținut:

  • Activați întotdeauna autentificarea — o instanță MongoDB neautentificată este o vulnerabilitate critică de securitate.
  • Nu expuneți niciodată portul 27017 la internetul public — utilizați SSH tunneling sau restricționați accesul la IP-uri specifice de încredere.
  • Mențineți MongoDB actualizat — rulați sudo apt-get upgrade mongodb-org în mod regulat pentru a primi patch-uri de securitate.
  • Testați backup-urile — un backup pe care nu l-ați restaurat niciodată este un backup în care nu puteți avea încredere.

Pentru echipele care au nevoie de o bază fiabilă și de înaltă performanță pentru implementări MongoDB, VPS Hosting AlexHost oferă stocare SSD NVMe, acces root complet și scalare flexibilă a resurselor. Dacă sarcina de lucru crește dincolo de un singur VPS, Dedicated Servers oferă resurse CPU și RAM dedicate fără efecte de vecini zgomotoși — ideal pentru seturi de replici MongoDB cu trafic ridicat sau clustere sharded.

Aveți nevoie de o stivă de hosting completă? Asociați VPS-ul bazei de date cu Shared Web Hosting pentru front-end sau active statice, și securizați traficul aplicației cu un SSL Certificate pentru a proteja datele în tranzit între utilizatori și servere.

*Ultima actualizare pentru MongoDB Community Edition 8.0 pe Debian 12 (Bookworm) și Ubuntu 22.04/24.04 LTS.*