Cách tạo web server Caddy của riêng bạn trong Linux

Caddy là một web server hiện đại, dễ sử dụng dành cho Linux. Nó hoạt động bằng cách hợp lý hóa quá trình tạo file cấu hình trang web và chứng chỉ SSL. Bài viết này sẽ hướng dẫn bạn quá trình cài đặt Caddy trên máy chủ Ubuntu Linux và cách sử dụng Caddy để triển khai một trang web đơn giản cũng như SSL reverse proxy.

Tại sao nên sử dụng Caddy làm web server?

Mặc dù Nginx và Apache là các daemon web server mạnh mẽ nhưng chúng có thể khó sử dụng và phức tạp đối với người dùng mới. Caddy cắt giảm sự phức tạp đó bằng cách cung cấp “Caddyfile”, một flat file duy nhất có cú pháp đơn giản, dễ học ngay cả đối với người mới bắt đầu.

Một terminal hiển thị một ví dụ về Caddyfile.
Một terminal hiển thị một ví dụ về Caddyfile.

Một điểm hấp dẫn khác của Caddy là nó cung cấp HTTPS cho web server của bạn ngay lập tức. Điều này giúp ích cho những người dùng thấy việc thiết lập SSL cho trang web của họ khó khăn và phức tạp. Vì vậy, Caddy là sự lựa chọn hoàn hảo nếu bạn đang tìm kiếm một web server “không ồn ào” trong Linux, vừa dễ bảo trì vừa dễ sử dụng.

Cài đặt Caddy

Bước đầu tiên trong việc cài đặt Caddy trên Ubuntu Linux là đảm bảo rằng bạn có các công cụ để nhập thông tin và key kho lưu trữ của nó:

sudo apt install curl debian-keyring debian-archive-keyring

Tìm nạp key kho lưu trữ cho Caddy từ trang web của nhà phát triển:

curl -fsSL 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg

Tải xuống và lưu file kho lưu trữ của dự án Caddy vào thư mục “sources.list.d” trên máy của bạn:

curl -fsSL 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy.list

Load lại kho apt của hệ thống bằng cách chạy lệnh sau:

sudo apt update && sudo apt upgrade

Cài đặt gói Caddy cho hệ thống của bạn bằng apt install:

sudo apt install caddy

Chạy trang web caddie đầu tiên của bạn

Để chạy trang web đầu tiên của bạn, hãy tạo thư mục root của trang web trong thư mục home của bạn:

mkdir ~/my-first-website && cd ~/my-first-website

Tạo file index.html bằng trình soạn thảo văn bản yêu thích của bạn:

nano ./index.html

Dán block code sau vào file HTML mới của bạn:

<!DOCTYPE html>
<html>
<head> <title> Hello World! </title> </head>
<body>
 
<h1> Hello World! </h1>
<p> Hello MakeTechEasier! </p>
 
</body>
</html>

Lưu file index.html của bạn, sau đó chạy lệnh sau:

caddy file-server --listen :8080

Xác nhận rằng web server của bạn đang hoạt động bình thường bằng cách điều hướng đến nó bằng trình duyệt của bạn.

Một trang web mẫu chạy trên localhost:8080.
Một trang web mẫu chạy trên localhost:8080.

Tạo một trang web bằng Caddyfile

Mặc dù công cụ CLI rất tốt để phục vụ các trang web đơn giản, nhưng Caddy cũng cung cấp “Caddyfile” dễ sử dụng cho những thiết lập phức tạp hơn. Để bắt đầu, hãy tạo một Caddyfile mới trong “/etc/caddy” bằng trình soạn thảo văn bản yêu thích của bạn:

sudo rm /etc/caddy/Caddyfile && sudo nano /etc/caddy/Caddyfile

Dán block code sau vào Caddyfile mới của bạn:

your-domain.com {
    redir https://www.{host}{uri}
}
 
www.your-domain.com {
    root * /var/www/html
    file_server
}

Lưu ý: Bạn cũng có thể host trang web chỉ có mạng LAN bằng Caddyfile thông qua việc thay thế “your-domain.com” bằng “localhost”.

Sao chép file index.html từ thư mục chính vào “/var/www” của hệ thống:

sudo mkdir /var/www/html/
sudo cp ~/my-first-website/index.html /var/www/html

Hãy tới nơi đăng ký DNS của bạn và đảm bảo rằng subdomain www và root của bạn có bản ghi A hoặc AAAA trỏ đến địa chỉ IPv4 và IPv6 của máy.

Hai bản ghi A trỏ đến địa chỉ IP của máy.
Hai bản ghi A trỏ đến địa chỉ IP của máy.

Lưu ý: Bạn không cần điều chỉnh bất kỳ cài đặt DNS nào cho các trang web chỉ có mạng LAN vì Caddy sẽ tạo chứng chỉ tự ký cho trang web đó.

Kích hoạt service Caddy tích hợp trên máy của bạn:

sudo systemctl enable --now caddy

Kiểm tra xem trang web của bạn có hoạt động bình thường hay không bằng cách điều hướng đến tên miền của bạn.

Trang web mẫu đang hoạt động với tên miền bên ngoài.
Trang web mẫu đang hoạt động với tên miền bên ngoài.

Tạo SSL Reverse Proxy với Caddy

Giống như Nginx và Apache, bạn cũng có thể sử dụng Caddy làm reverse proxy cho service nội bộ trên máy của mình. Để thực hiện việc này, hãy mở Caddyfile trong hệ thống của bạn:

sudo nano /etc/caddy/Caddyfile

Dán block code sau vào Caddyfile của bạn:

your-domain.com {
    reverse_proxy 127.0.0.1:LOCAL-PORT
}

Thay thế “LOCAL-PORT” bằng cổng ứng dụng web của bạn. Trường hợp này sẽ thay thế code bằng 3001 để chuyển hướng tất cả lưu lượng truy cập đến máy chủ Uptime Kuma.

Một terminal hiển thị cấu hình reverse proxy Caddy đã sửa đổi.
Một terminal hiển thị cấu hình reverse proxy Caddy đã sửa đổi.

Lưu Caddyfile của bạn, sau đó load lại service Caddy để áp dụng cài đặt mới của bạn:

sudo systemctl reload caddy

Kiểm tra xem reverse proxy của bạn có hoạt động bình thường hay không bằng cách điều hướng đến domain của bạn bằng trình duyệt web.

Phiên bản Uptime Kuma được ủy quyền thông qua Caddy.
Phiên bản Uptime Kuma được ủy quyền thông qua Caddy.
Thứ Ba, 02/04/2024 10:23
51 👨 279
0 Bình luận
Sắp xếp theo
    ❖ Linux