MongoDB là một cơ sở dữ liệu tài liệu NoQuery miễn phí và mã nguồn mở được sử dụng phổ biến trong các ứng dụng web hiện đại.
Trong bài viết này, mình sẽ hướng dẫn các bạn cách cài đặt MongoDB trên Ubuntu 18.04, quản lý dịch vụ của nó và tùy chọn cho phép truy cập từ xa.
Điều kiện tiên quyết
Để làm theo hướng dẫn này, bạn sẽ cần:
- Một máy chủ Ubuntu 18.04 được thiết lập.
- Quyền root
Bước 1 – Cài đặt MongoDB
Các kho lưu trữ gói chính thức của Ubuntu bao gồm một phiên bản cập nhật của MongoDB, có nghĩa là chúng ta có thể cài đặt các gói cần thiết bằng cách sử dụng apt
.
Đầu tiên, cập nhật danh sách các gói để có phiên bản mới nhất của danh sách kho lưu trữ:
sudo apt update
Bây giờ hãy cài đặt gói MongoDB:
sudo apt install -y mongodb
Lệnh này cài đặt một số gói chứa phiên bản ổn định mới nhất của MongoDB, cùng với các công cụ quản lý hữu ích cho máy chủ MongoDB. Máy chủ cơ sở dữ liệu được tự động khởi động sau khi cài đặt.
Tiếp theo, hãy để xác minh rằng máy chủ đang chạy và hoạt động chính xác.
Bước 2 – Kiểm tra Service và Database
Quá trình cài đặt đã tự động khởi động MongoDB, nhưng hãy để xác minh rằng dịch vụ được khởi động và cơ sở dữ liệu đang hoạt động.
Đầu tiên, hãy kiểm tra trạng thái service:
sudo systemctl status mongodb
Bạn sẽ thấy đầu ra này:
root@vultr:/# sudo systemctl status mongodb
● mongodb.service - An object/document-oriented database
Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2020-03-18 16:46:08 UTC; 4min 47s ago
Docs: man:mongod(1)
Main PID: 7899 (mongod)
Tasks: 24 (limit: 2318)
CGroup: /system.slice/mongodb.service
└─7899 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config /etc/mongodb.conf
Mar 18 16:46:08 vultr.guest systemd[1]: Started An object/document-oriented database.
Chúng ta có thể xác minh điều này hơn nữa bằng cách thực sự kết nối với máy chủ cơ sở dữ liệu và thực hiện lệnh chẩn đoán.
Thực hiện lệnh này:
mongo --eval 'db.runCommand({ connectionStatus: 1 })'
Điều này sẽ xuất phiên bản cơ sở dữ liệu hiện tại, địa chỉ máy chủ và cổng và đầu ra của lệnh trạng thái:
root@vultr:/# mongo --eval 'db.runCommand({ connectionStatus: 1 })'
MongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.3
{
"authInfo" : {
"authenticatedUsers" : [ ],
"authenticatedUserRoles" : [ ]
},
"ok" : 1
}
Giá trị 1
cho trường ok
trong phản hồi cho biết rằng máy chủ đang hoạt động đúng.
Tiếp theo, chúng ta sẽ xem xét làm thế nào để quản lý server.
Bước 3 – Quản lý MongoDB Service
MongoDB cài đặt như một dịch vụ systemd
, có nghĩa là bạn có thể quản lý nó bằng các lệnh systemd
tiêu chuẩn cùng với tất cả các dịch vụ hệ thống khác trong Ubuntu.
Để xác minh trạng thái của dịch vụ, nhập:
sudo systemctl status mongodb
Bạn có thể dừng máy chủ bất cứ lúc nào bằng cách gõ:
sudo systemctl stop mongodb
Để khởi động máy chủ khi dừng, gõ:
sudo systemctl start mongodb
Bạn cũng có thể khởi động lại máy chủ bằng một lệnh duy nhất:
sudo systemctl restart mongodb
Theo mặc định, MongoDB được cấu hình để bắt đầu tự động với máy chủ. Nếu bạn muốn tắt tự động khởi động, gõ:
sudo systemctl disable mongodb
Nó rất dễ dàng để kích hoạt lại. Để làm điều này, sử dụng:
sudo systemctl enable mongodb
Tiếp theo, hãy để điều chỉnh các cài đặt tường lửa cho cài đặt MongoDB của chúng tôi.
Bước 4 – Điều chỉnh Tường lửa (Tùy chọn)
Giả sử bạn đã làm theo các hướng dẫn hướng dẫn thiết lập máy chủ ban đầu để bật tường lửa trên máy chủ của mình, máy chủ MongoDB sẽ không thể truy cập được từ internet.
Nếu bạn định chỉ sử dụng máy chủ MongoDB cục bộ với các ứng dụng chạy trên cùng một máy chủ thì đây là cài đặt được khuyến nghị và bảo mật. Tuy nhiên, nếu bạn muốn có thể kết nối với máy chủ MongoDB của mình từ internet, bạn phải cho phép các kết nối đến trong ufw
.
Để cho phép truy cập vào MongoDB trên cổng mặc định 27017
từ mọi nơi, bạn có thể sử dụng sudo ufw allow 27017
. Tuy nhiên, việc cho phép truy cập internet vào máy chủ MongoDB trên cài đặt mặc định cho phép mọi người truy cập không hạn chế vào máy chủ cơ sở dữ liệu và dữ liệu của nó.
Trong hầu hết các trường hợp, MongoDB chỉ nên được truy cập từ một số vị trí đáng tin cậy nhất định, chẳng hạn như một máy chủ khác lưu trữ một ứng dụng. Để thực hiện tác vụ này, bạn có thể cho phép truy cập trên cổng mặc định MongoDB, trong khi chỉ định địa chỉ IP của một máy chủ khác sẽ được phép kết nối rõ ràng:
sudo ufw allow from your_other_server_ip/32 to any port 27017
Bạn có thể xác minh thay đổi trong cài đặt tường lửa bằng ufw
:
sudo ufw status
ạn sẽ thấy lưu lượng truy cập đến cổng 27017
được cho phép:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
27017 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
27017 (v6) ALLOW Anywhere (v6)
Nếu bạn đã quyết định chỉ cho phép một địa chỉ IP nhất định kết nối với máy chủ MongoDB, địa chỉ IP của vị trí được phép sẽ được liệt kê thay vì bất kỳ nơi nào khác.
Bạn có thể tìm thấy các cài đặt tường lửa nâng cao hơn để hạn chế quyền truy cập vào các dịch vụ trong UFW Essentials: Các quy tắc và lệnh tường lửa phổ biến.
Mặc dù cổng đã mở, MongoDB hiện chỉ nghe trên địa chỉ cục bộ 127.0.0.1. Để cho phép các kết nối từ xa, hãy thêm địa chỉ IP có thể định tuyến công khai vào máy chủ của bạn vào tệp mongod.conf
.
Mở tệp cấu hình MongoDB trong trình chỉnh sửa của bạn:
sudo nano /etc/mongodb.conf
Thêm địa chỉ IP máy chủ của bạn vào giá trị bindIP
:
...
logappend=true
bind_ip = 127.0.0.1,your_server_ip
#port = 27017
...
Đảm bảo đặt dấu phẩy giữa địa chỉ IP hiện có và địa chỉ bạn đã thêm.
Lưu tệp, thoát trình chỉnh sửa và khởi động lại MongoDB:
sudo systemctl restart mongodb
OK. Vậy là xong xuôi các bước cài đặt và config MongoDB trên Ubuntu rồi đấy, giờ thì tiếp những phần dang giở của bạn đi nào.
Có thể bạn muốn xem: