Как да създадем MongoDB на VPS
MongoDB е популярна NoSQL база данни, известна със своята гъвкавост, мащабируемост и производителност. Тя съхранява данни в гъвкави документи, подобни на JSON, което е идеално за разработчици, работещи с динамични и бързо променящи се приложения. Ако сте избрали да стартирате MongoDB на свой собствен виртуален частен сървър (VPS), ви очаква ползотворно преживяване, което ще ви даде пълен контрол върху средата на базата данни. Това ръководство ще ви преведе стъпка по стъпка през процеса на настройка на MongoDB на VPS.
Предварителни условия
Преди да започнем, уверете се, че разполагате със следното:
- VPS с root достъп.
- Ubuntu 20.04 или подобна дистрибуция на Linux.
- SSH достъп до вашия VPS.
- Поне 2 GB RAM (препоръчително) за MongoDB.
- Основни познания за интерфейса на командния ред (CLI) и командите на Linux.
Стъпка 1: Актуализиране на системата
Първо се уверете, че вашият VPS е актуализиран. Влезте в системата чрез SSH и изпълнете следните команди, за да актуализирате списъка с пакети на системата си и да инсталирате всички предстоящи актуализации:
sudo apt update
sudo apt upgrade -y
След като системата бъде актуализирана, добра практика е да рестартирате сървъра, за да се уверите, че всички актуализации са приложени правилно:
sudo reboot
Стъпка 2: Инсталиране на MongoDB
MongoDB не е включена в хранилищата по подразбиране на Ubuntu, така че ще трябва да добавите официалното ѝ хранилище, преди да я инсталирате. Ето как да инсталирате MongoDB:
Добавяне на хранилището на MongoDB
- Импортирайте публичния GPG ключ на MongoDB:
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
- Създайте файл със списък за MongoDB:
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
- Актуализирайте местния си списък с пакети:
sudo apt update
Инсталиране на пакетите на MongoDB
Сега инсталирайте пакетите MongoDB, като изпълните следната команда:
sudo apt install -y mongodb-org
Това инсталира MongoDB заедно с други необходими компоненти (като mongod, демонът на MongoDB).
Стъпка 3: Стартиране и активиране на MongoDB
След като инсталирате, трябва да стартирате MongoDB и да разрешите стартирането му при стартиране:
sudo systemctl start mongod
sudo systemctl enable mongod
За да потвърдите, че MongoDB е стартирана, проверете нейното състояние:
sudo systemctl status mongod
Трябва да видите MongoDB в списъка като активна (работеща). Ако всичко изглежда добре, можете да преминете към конфигуриране.
Стъпка 4: Защита на MongoDB
По подразбиране MongoDB позволява неудостоверен достъп, което не е идеално за производствена среда. За да защитите MongoDB, трябва да разрешите удостоверяването.
Създаване на потребител администратор
- Първо, осъществете достъп до обвивката на MongoDB:
mongo
- Превключете към базата данни на администратора:
използвай admin
- Създайте потребител администратор, като изпълните следната команда, като замените adminuser и password с желаните от вас потребителско име и парола:
db.createUser({
user: "adminuser",
pwd: "password",
роли: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})
- Излизане от обвивката на MongoDB:
exit
Активиране на удостоверяването
- Отворете конфигурационния файл на MongoDB с текстов редактор:
sudo nano /etc/mongod.conf
- В конфигурационния файл намерете следния ред:
#security:
- Разкоментирайте го и добавете следния ред под него:
security:
authorization: enabled
- Запазете промените и излезте от редактора (в Nano натиснете Ctrl X, след това Y и Enter).
- Рестартирайте MongoDB, за да приложите промените:
sudo systemctl restart mongod
Стъпка 5: Конфигуриране на отдалечен достъп до MongoDB (по избор)
По подразбиране MongoDB слуша само на localhost (127.0.0.1), което означава, че е достъпна само от самия VPS. Ако имате нужда от отдалечен достъп, ще трябва да конфигурирате MongoDB да позволява връзки от външни IP адреси. Ето как:
- Отворете конфигурационния файл на MongoDB:
sudo nano /etc/mongod.conf
- Намерете следния ред:
bindIp: 127. 0.0.1
- Заменете го с:
bindIp: 0. 0.0.0
Това позволява на MongoDB да приема връзки от всички IP адреси.
- Запазете промените и излезте от редактора.
- Рестартирайте MongoDB:
sudo systemctl restart mongod
Защитете отдалечения достъп със защитна стена
Разрешете само на доверени IP адреси да се свързват с MongoDB, като конфигурирате защитната стена на VPS. Ако използвате UFW (Uncomplicated Firewall – неусложнена защитна стена), ето как да разрешите отдалечени връзки на порта по подразбиране на MongoDB (27017):
- Разрешете достъпа от определен IP адрес (заменете your_ip с вашия IP адрес):
sudo ufw allow from your_ip to any port 27017
- За да разрешите UFW (ако не е разрешен):
sudo ufw enable
- Проверете състоянието на UFW, за да потвърдите, че правилото е добавено:
sudo ufw status
Стъпка 6: Тестване на настройката на MongoDB
За да проверите дали MongoDB работи правилно, можете да получите достъп до обвивката на MongoDB и да се удостоверите, като използвате потребителя, който създадохте по-рано:
- Свържете се с MongoDB:
mongo -u adminuser -p --authenticationDatabase admin
- Сега трябва да сте влезли в обвивката на MongoDB като потребител admin.
Стъпка 7: Архивиране и поддръжка
Изключително важно е редовно да създавате резервни копия на вашите бази данни MongoDB, особено в производствена среда. Можете да използвате инструмента mongodump, за да създадете резервно копие на данните си:
mongodump --out /path/to/backup/directory
Можете да възстановите данните с помощта на mongorestore:
mongorestore /path/to/backup/directory
Заключение
Следвайки тези стъпки, вие успешно сте инсталирали и конфигурирали MongoDB на вашия VPS. Сега имате пълен контрол върху средата на MongoDB, която може да бъде нагласена така, че да отговаря на конкретните ви нужди. Независимо дали използвате MongoDB за уеб приложения, големи данни или просто експериментирате, вашата VPS-базирана инсталация на MongoDB ще предложи както гъвкавост, така и производителност.
Не забравяйте да наблюдавате редовно вашата MongoDB инстанция и да я поддържате сигурна, като активирате удостоверяване и ограничите достъпа чрез защитни стени. Успешно кодиране!