Thứ Sáu, Tháng 2 14, 2025
Google search engine
HomelinuxdebianCách cài đặt máy chủ cơ sở dữ liệu Apache CouchDB NoSQL...

Cách cài đặt máy chủ cơ sở dữ liệu Apache CouchDB NoSQL trên Debian 11

Cách cài đặt máy chủ cơ sở dữ liệu Apache CouchDB NoSQL trên Debian 11

Apache CouchDB là một cơ sở dữ liệu NoSQL mã nguồn mở được phát triển bởi Apache Software Foundation. Mỗi cơ sở dữ liệu là một tập hợp các tài liệu ở định dạng JSON. Mỗi tài liệu bao gồm một số trường và tệp đính kèm. Nó đi kèm với một API yên tĩnh cho phép bạn tạo, chỉnh sửa và xóa các tài liệu cơ sở dữ liệu. Nó hỗ trợ hai chế độ – độc lập và theo nhóm. Nếu bạn đang sử dụng nó trên một máy chủ, bạn có thể sử dụng chế độ độc lập. Chế độ cụm sẽ hữu ích nếu bạn đang sử dụng nhiều hơn một máy chủ.

Hướng dẫn này sẽ dạy bạn cách cài đặt Máy chủ cơ sở dữ liệu Apache CouchDB trên máy chủ Debian 11. Bạn cũng sẽ học cách thực hiện một số thao tác cơ sở dữ liệu cơ bản và truy cập CouchDB qua URL công khai bằng máy chủ web Caddy.

Điều kiện tiên quyết

  • Máy chủ chạy Debian 11.

  • Gói Sudo đã được cài đặt.

    $ apt install sudo
  • Người dùng không phải root có đặc quyền sudo.

  • Mọi thứ đều được cập nhật.

    $ sudo apt update && sudo apt upgrade
  • Tên miền đủ điều kiện (FQDN), như couchdb.example.com để truy cập CouchDB qua URL công khai với HTTPS.

Bước 1 – Cài đặt Tiện ích

Trước khi tiếp tục cài đặt, chúng ta cần cài đặt một số công cụ cần thiết cho phần hướng dẫn. Chạy lệnh sau để cài đặt chúng.

$ sudo apt install -y curl apt-transport-https gnupg nano lsb-release

Bước 2 – Thêm kho lưu trữ CouchDB

Bước đầu tiên là nhập khóa GPG của CouchDB. Chạy lệnh sau để nhập khóa.

$ curl https://couchdb.apache.org/repo/keys.asc | gpg --dearmor | sudo tee /usr/share/keyrings/couchdb-archive-keyring.gpg >/dev/null 2>&1

Thêm kho lưu trữ của CouchDB vào danh sách kho lưu trữ hệ thống.

$ echo "deb [signed-by=/usr/share/keyrings/couchdb-archive-keyring.gpg] https://apache.jfrog.io/artifactory/couchdb-deb/ `lsb_release -cs` main"
| sudo tee /etc/apt/sources.list.d/couchdb.list >/dev/null

Cập nhật danh sách kho hệ thống.

$ sudo apt update

Bước 3 – Cài đặt CouchDB

Chạy lệnh sau để cài đặt CouchDB.

$ sudo apt install couchdb -y

Trình cài đặt CouchDB sẽ tự động nhắc bạn định cấu hình các cài đặt cơ bản. Trong bước đầu tiên, nó sẽ hỏi bạn muốn sử dụng nó trong một thiết lập máy chủ duy nhất hay nhiều nút. Vì chúng tôi đang cài đặt nó trên một máy chủ duy nhất, hãy giữ tùy chọn được chọn và nhấn Enter để tiếp tục.

CouchDB Server Configuration Type

Tiếp theo, bạn sẽ được yêu cầu đặt tên cookie. Chọn bất kỳ tên nào bạn muốn.

CouchDB Erlang Cookie Setup

Tiếp theo, bạn sẽ được yêu cầu thiết lập một địa chỉ ràng buộc cho dịch vụ của CouchDB. Vì chúng tôi đang cài đặt nó trên máy chủ và sẽ cần truy cập nó thông qua bảng điều khiển giao diện người dùng, hãy đặt 0.0.0.0 làm địa chỉ ràng buộc. Nếu bạn định giới hạn quyền truy cập vào máy chủ CouchDB ở một địa chỉ IP, thì hãy sử dụng địa chỉ đó.

CouchDB Binding Address Setup

Tiếp theo, bạn sẽ được yêu cầu tạo mật khẩu quản trị viên cho tài khoản quản trị viên mặc định của nó.

CouchDB Admin Password Setup

Bạn sẽ được yêu cầu xác minh lại mật khẩu.

CouchDB Password Verification prompt

Nhấn Enter để hoàn tất quá trình cài đặt.

Bước 4 – Xác minh cài đặt CouchDB

Để xác minh xem cài đặt có thành công hay không, hãy chạy lệnh sau.

$ curl http://127.0.0.1:5984/

Nó sẽ trả về một đầu ra có định dạng JSON với thông tin về CouchDB.

{"couchdb":"Welcome","version":"3.2.2","git_sha":"d5b746b7c","uuid":"7a20b1eadd803f1c0d77fb9617c7f3de","features":["access-ready","partitioned","pluggable-storage-engines","reshard","scheduler"],"vendor":{"name":"The Apache Software Foundation"}}

Đầu ra của trình bao không được định dạng. Đây là cách nó trông như thế nào khi định dạng.

{
"couchdb":"Welcome",
"version":"3.2.2",
"git_sha":"d5b746b7c",
"uuid":"7a20b1eadd803f1c0d77fb9617c7f3de",
"features":[
"access-ready",
"partitioned",
"pluggable-storage-engines",
"reshard",
"scheduler"
],
"vendor":{
"name":"The Apache Software Foundation"
}
}

Bạn cũng có thể truy cập nó qua web bằng cách truy cập URL http://<yourserverIP>:5984/ . Nhưng trước khi làm điều đó, chúng ta cần mở cổng trong tường lửa của mình. Giả sử bạn đang sử dụng Tường lửa không phức tạp (ufw), hãy chạy lệnh sau để mở cổng.

$ sudo ufw allow 5984/tcp

Mở URL http://<yourserverIP>:5984 trong trình duyệt của bạn. Bạn sẽ thấy màn hình sau. Kết quả sau đã được ghi lại trên Firefox. Trong các trình duyệt khác, bạn sẽ chỉ thấy đầu ra thô mà bạn nhận được trong thiết bị đầu cuối của mình.

CouchDB WebPage in Firefox

Bước 5 – Truy cập CouchDB

CouchDB cung cấp GUI dựa trên web được gọi là Fauxton để quản lý và tạo cơ sở dữ liệu. Bạn có thể truy cập nó qua URL http://<yourserverIP>:5984/_utils/ . Khởi chạy URL trong trình duyệt yêu thích của bạn và bạn sẽ thấy màn hình đăng nhập sau. Quảng cáo

CouchDB Login Screen

Nhập quản trị viên làm tên người dùng của bạn và mật khẩu đã tạo trước đó. Nhấn nút Đăng nhập để tiếp tục. Tiếp theo, bạn sẽ được đưa đến bảng điều khiển CouchDB.

CouchDB Dashboard

Tại đây, bạn sẽ thấy hai cơ sở dữ liệu đã được tạo trong quá trình cài đặt. Cơ sở dữ liệu _users như mong đợi sẽ xử lý thông tin cho người dùng nền tảng CouchDB và cơ sở dữ liệu _replicator giữ thông tin về bất kỳ cơ sở dữ liệu hoặc hoạt động sao chép nào.

Bạn cũng sẽ thấy một thanh bên với tất cả các loại tùy chọn mà bạn có thể sử dụng với CouchDB.

Bước 6 – Thao tác cơ sở dữ liệu cơ bản sử dụng giao diện CouchDB

Giao diện Fauxton của CouchDB cho phép chúng ta thực hiện các thao tác CRUD cơ bản (tạo, đọc, cập nhật và xóa). Hãy để chúng tôi bắt đầu với việc tạo một cơ sở dữ liệu mới.

Tạo nên cơ sở dữ liệu

Để tạo cơ sở dữ liệu mới, hãy nhấp vào liên kết Tạo cơ sở dữ liệu trên màn hình chính. Nó sẽ mở ra cửa sổ bật lên sau.

CouchDB Create Database popup

Nhập tên của cơ sở dữ liệu bạn muốn tạo và nhấp vào nút Tạo .

Thao tác này sẽ tạo một cơ sở dữ liệu mới và mở ra màn hình sau.

CouchDB Database dashboard

Tạo tài liệu

Bây giờ chúng ta đã có một cơ sở dữ liệu, hãy tạo một tài liệu trong đó. Nhấp vào nút Tạo tài liệu để bắt đầu. Bạn sẽ nhận được màn hình tài liệu mới sau đây được điền sẵn một đối tượng JSON và một _id với Mã định danh duy nhất trên toàn cầu (GUID).

CouchDB New Document window

Hãy để chúng tôi thêm một số dữ liệu bằng cách thêm một số trường khác theo cách sau. Nếu bạn muốn thay đổi giá trị của trường _id , bạn chỉ có thể trước khi tạo tài liệu. Bạn không thể thay đổi giá trị của nó sau khi tài liệu đã được tạo. Tuy nhiên, bạn có thể chỉnh sửa các trường khác bất kỳ lúc nào.

{
"_id": "0b4ad0d607479c09bb9121b146007363",
"Name": "Navjot Singh",
"role": "writer",
"skills": "linux"
}

CouchDB New Document Data

Bấm vào nút Tạo tài liệu khi bạn hoàn tất việc thêm các trường để lưu tài liệu mới. Bạn sẽ được quay lại trang Tất cả tài liệu sau đây.

CouchDB All Documents

Để xem nội dung của các tài liệu, bạn có thể nhấp vào liên kết {} JSON .

CouchDB View Document

Để chỉnh sửa tài liệu, bạn có thể nhấp vào biểu tượng bút chì hiển thị ở bên phải hoặc chuyển về chế độ xem Siêu dữ liệu và nhấp vào liên kết tài liệu. Thay đổi giá trị của bất kỳ mục nào và nhấp vào Lưu tài liệu để hoàn tất.

Xóa tài liệu

Để xóa tài liệu, nhấp vào dấu kiểm phía trước tài liệu và chọn nút xóa ở trên cùng như hình dưới đây.

CouchDB Delete Document

Bước 7 – Thao tác cơ sở dữ liệu cơ bản bằng dòng lệnh

Mặc dù sử dụng giao diện web là cách sử dụng CouchDB đơn giản hơn, nhưng có thể đạt được hiệu quả cao hơn bằng cách thực hiện các thao tác tương tự thông qua dòng lệnh.

Tạo nên cơ sở dữ liệu

Trước khi bắt đầu tạo cơ sở dữ liệu, chúng ta hãy xác định một biến để URL kết nối. Chúng tôi sẽ sử dụng xác thực văn bản thuần túy đơn giản cho các ví dụ của chúng tôi. Vì chúng ta sẽ cần xác thực mọi lệnh, nên tốt hơn là sử dụng một biến được xác định trước cho nó. Bạn có thể sử dụng localhost hoặc 127.0.0.1 để kết nối với cài đặt CouchDB.

$ HOST="http://admin:[email protected]:5984"

Lưu ý: Sử dụng mật khẩu văn bản thuần túy không phải là phương pháp tốt nhất và không nên được sử dụng trong môi trường sản xuất. Bạn có thể kiểm tra tài liệu chính thức của CouchDB để biết các phương pháp xác thực an toàn hơn.

Bây giờ chúng ta đã xác định URL máy chủ, hãy thử tạo một cơ sở dữ liệu khác bằng lệnh sau.

$ curl -X PUT $HOST/another_db

Tên của cơ sở dữ liệu là another_db . Và chúng ta cần cung cấp mật khẩu quản trị viên cho lệnh.

Tạo tài liệu

Để tạo một tài liệu, hãy chạy lệnh sau.

$ curl -X POST -d '{"todo":"task 1", "done":false}' $HOST/another_db -H "Content-Type:application/json"

Cờ -X cho biết rằng chúng tôi đang thực hiện thao tác ĐĂNG HTTP. Cờ -H chỉ định loại nội dung mà chúng tôi đang đẩy là JSON ở đây. Và cờ -d chỉ định nội dung JSON thực tế mà chúng tôi đang thêm.

Lệnh trên sẽ tự động tạo ID cho tài liệu. Nó sẽ tạo ra kết quả sau cho biết rằng lệnh đã thành công.

{"ok":true,"id":"0b4ad0d607479c09bb9121b14600c6ee","rev":"1-2fc1d70532433c39c9f61480607e3681"}

Như bạn có thể thấy, một ID cho tài liệu đã được tạo tự động. Nếu bạn muốn chỉ định một ID tùy chỉnh, bạn có thể làm như vậy theo cách sau.

$ curl -X POST -d '{"_id":"random_task", "todo":"task 2", "done":false}' $HOST/another_db -H "Content-Type:application/json"
{"ok":true,"id":"random_task","rev":"1-bceeae3c4a9154c87db1649473316e44"}

Tạo tài liệu hàng loạt

Bạn cũng có thể thêm hàng loạt tài liệu.

$ curl -X POST -d '{"docs": [{"todo":"task 3", "done":false}, {"todo":"task 4", "done":false}]}' $HOST/another_db/_bulk_docs -H "Content-Type:application/json"

Như bạn có thể thấy, khi chúng tôi đang chèn nhiều tài liệu, phần nội dung POST chứa một đối tượng có trường docs . Trường này mang một mảng tài liệu sẽ được chèn vào cơ sở dữ liệu. Trong khi chèn một tài liệu, yêu cầu POST đã được gửi đến cơ sở dữ liệu ( $HOST/another_db ). Nhưng khi chúng ta cần chèn nhiều tài liệu, yêu cầu phải được gửi đến URL $HOST/another_db/_bulk_docs .

Bạn sẽ nhận được một đầu ra tương tự.

[{"ok":true,"id":"0b4ad0d607479c09bb9121b14600cb04","rev":"1-778fd61f8f460d0c1df1bb174279489d"},{"ok":true,"id":"0b4ad0d607479c09bb9121b14600d9ef","rev":"1-dc9e84861bba58e5cfefeed8f5133636"}]

Ở đây bạn có thể thấy rằng đầu ra chứa ID cho hai tài liệu mới.

Đọc tài liệu

Để đọc một tài liệu từ cơ sở dữ liệu, bạn cần chỉ định ID của nó. Chạy lệnh sau để truy xuất tài liệu random_task . Vì chúng tôi đã sử dụng một yêu cầu HTTP POST để thêm dữ liệu, nên để truy xuất nó, bạn sẽ cần phải sử dụng một yêu cầu GET.

$ curl -X GET $HOST/another_db/random_task

Bạn sẽ nhận được kết quả sau.

{"_id":"random_task","_rev":"1-bceeae3c4a9154c87db1649473316e44","todo":"task 2","done":false}

Tại đây, hãy ghi lại trường _rev của tài liệu. Trường này hữu ích khi bạn cần chỉnh sửa hoặc xóa tài liệu.

Chỉnh sửa tài liệu

Để chỉnh sửa tài liệu, bạn cần sử dụng trường _rev . Bất kỳ yêu cầu nào không bao gồm trường _rev sẽ tự động bị CouchDB từ chối trong khi chỉnh sửa. Vì CouchDB cập nhật toàn bộ tài liệu, nên toàn bộ tài liệu phải được gửi trong phần thân yêu cầu trong quá trình chỉnh sửa.

Hãy để chúng tôi cập nhật tài liệu random_task bằng cách sử dụng lệnh sau.

$ curl -X PUT -d '{"_rev":"1-bceeae3c4a9154c87db1649473316e44", "todo":"task 2", "done":true}' $HOST/another_db/random_task

Đảm bảo rằng bạn thay thế giá trị của trường _rev bằng giá trị bạn nhận được khi đọc tài liệu. Nó phải khớp với giá trị trong tài liệu thực tế.

Bạn sẽ nhận được một đầu ra tương tự như bên dưới.

{"ok":true,"id":"random_task","rev":"2-4cc3dfb6e76befd665faf124b36b7f1c"}

Nếu bạn nhận thấy, dữ liệu của trường rev đã thay đổi. Bất kỳ thay đổi nào đối với tài liệu sẽ yêu cầu bạn sử dụng giá trị rev mới này.

Xóa tài liệu

Để xóa tài liệu, bạn sẽ cần chỉ định ID và giá trị rev cập nhật. Hãy để chúng tôi xóa tài liệu random-task .

$ curl -X DELETE $HOST/another_db/random_task?rev=2-4cc3dfb6e76befd665faf124b36b7f1c

Đảm bảo khớp giá trị của trường rev trong lệnh với giá trị trong tài liệu thực của bạn. Bạn sẽ nhận được đầu ra tương tự như sau.

{"ok":true,"id":"random_task","rev":"3-07d6cde68be2a559497ec263045edc9d"}

Xem dữ liệu

Hãy để chúng tôi kiểm tra danh sách tất cả các cơ sở dữ liệu trên máy chủ.

$ curl -X GET $HOST/_all_dbs

Liệt kê tất cả các tài liệu trong một cơ sở dữ liệu cụ thể.

$ curl -X GET $HOST/another_db/_all_docs

Bước 8 – Cài đặt Máy chủ Caddy

Cho đến nay, chúng tôi đã truy cập CouchDB bằng địa chỉ IP máy chủ. Có một phương pháp dễ dàng nếu bạn muốn thay thế nó bằng tên miền của mình và sử dụng SSL phía trước để đảm bảo an toàn hơn. Đối với hướng dẫn của chúng tôi, chúng tôi sẽ sử dụng Máy chủ Caddy vì nó nhẹ và hoạt động với cấu hình tối thiểu, và đi kèm với tính năng tạo SSL tích hợp.

Chạy lệnh sau để cài đặt một số gói theo yêu cầu của Caddy. Chúng có thể đã được cài đặt trên máy chủ của bạn.

$ sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https

Cài đặt khóa GPG của Caddy và thêm kho lưu trữ chính thức vào danh sách kho lưu trữ của Debian.

$ curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
$ curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list

Cài đặt máy chủ Caddy.

$ sudo apt update
$ sudo apt install caddy

Chạy lệnh sau để xác minh cài đặt.

$ caddy version
v2.5.1 h1:bAWwslD1jNeCzDa+jDCNwb8M3UJ2tPa8UZFFzPVmGKs=

Bước 9 – Định cấu hình Caddy

Để định cấu hình Caddy hoạt động như một máy chủ proxy ngược, bạn cần phải định cấu hình Caddyfile . Mở Caddyfile để chỉnh sửa.

$ sudo nano /etc/caddy/Caddyfile

Thay thế mã trong đó bằng mã sau.

couchdb.example.com {
reverse_proxy localhost:5984

tls [email protected]

log {
output file /var/log/caddy/couchdb.log
}
}

Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Chạy trình xác nhận Caddy để kiểm tra bất kỳ vấn đề nào.

$ caddy validate --adapter caddyfile --config /etc/caddy/Caddyfile

Nếu bạn gặp bất kỳ lỗi nào liên quan đến định dạng, hãy chạy lệnh sau để sửa lỗi đó.

$ sudo caddy fmt --overwrite /etc/caddy/Caddyfile

Chạy lại trình xác thực.

Khởi động lại máy chủ Caddy để thực hiện các thay đổi.

$ sudo systemctl restart caddy

Giờ đây, bạn có thể truy cập CouchDB qua URL https://couchdb.example.com/_utils/ trong trình duyệt của mình.

Sự kết luận

Bạn đã học cách cài đặt máy chủ Cơ sở dữ liệu Apache CouchDB trên máy Debian 11. Bạn cũng đã học cách thực hiện các thao tác cơ sở dữ liệu cơ bản thông qua dòng lệnh và giao diện người dùng Fauxton. Và cuối cùng nhưng không kém phần quan trọng, bạn cũng đã học được cách hiển thị giao diện người dùng Fauxton trên internet bằng cách sử dụng Caddy làm máy chủ proxy ngược. Nếu bạn có bất kỳ câu hỏi nào, hãy gửi chúng trong phần bình luận bên dưới.

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

- Advertisment -
Google search engine

Most Popular

Recent Comments