Caddy Webserver là một máy chủ web hiện đại, nổi bật với khả năng cấu hình đơn giản và tự động cấp chứng chỉ SSL. Trong bài viết này, bạn sẽ học cách cài đặt Caddy Webserver trên Ubuntu 24.04 chỉ với vài bước đơn giản. Mình sẽ hướng dẫn từ quá trình cài đặt, cấu hình máy chủ ảo, thiết lập tường lửa đến bảo mật file cấu hình. Bài viết còn giúp bạn hiểu rõ hơn cách bảo vệ hệ thống và tối ưu hiệu suất hoạt động của website.
Điểm chính cần nắm
- Caddy Webserver là gì?: Giới thiệu tổng quan về Caddy, máy chủ web hiện đại với cấu hình đơn giản và hỗ trợ HTTPS tự động.
- 6 bước cài đặt Caddy Webserver trên Ubuntu 24.04: Hướng dẫn chi tiết quá trình cài đặt và cấu hình Caddy trên Ubuntu 24.04.
- Bảo mật máy chủ Caddy và thiết lập tường lửa: Cách bảo vệ file cấu hình và thiết lập UFW để tăng cường bảo mật cho Caddy.
- Vietnix – Giải pháp lưu trữ tốc độ cao và an toàn cho website của bạn: Giới thiệu dịch vụ hosting và hạ tầng lưu trữ hiệu suất cao của Vietnix.
- FAQ: Giải đáp các câu hỏi thường gặp liên quan đến việc cài đặt và sử dụng Caddy Webserver trên Ubuntu.
Caddy Webserver là gì?
Caddy Webserver là một máy chủ web mã nguồn mở, được viết bằng ngôn ngữ lập trình Go, nổi bật nhờ khả năng tự động cấu hình HTTPS cho các tên miền mà không cần thao tác thủ công. Caddy có thể hoạt động như:
- Máy chủ web tĩnh phục vụ các file HTML, CSS, JS,…
- Proxy ngược (reverse proxy) cho các ứng dụng chạy phía sau như PHP, Node.js, Python,…
- Bộ cân bằng tải (load balancer) giữa nhiều backend khác nhau.
- Máy chủ API hoặc HTTP gateway trong các hệ thống microservices.

Ưu điểm của Caddy:
- HTTPS tự động: Sử dụng Let’s Encrypt để tạo và gia hạn chứng chỉ SSL miễn phí.
- Cấu hình đơn giản: Dễ hiểu và thân thiện với người dùng thông qua tập tin
Caddyfile
. - Tích hợp hiện đại: Hỗ trợ HTTP/2, HTTP/3, TLS 1.3, Gzip, WebSockets, redirection, rewrite, logging, rate limiting,…
- Chạy độc lập: Không cần phụ thuộc vào phần mềm khác như Nginx hoặc Apache.
- Bảo mật mặc định cao: Thiết kế bảo mật ngay từ đầu, tránh cấu hình sai sót phổ biến.
Caddy thích hợp cho:
- Các ứng dụng web hiện đại cần HTTPS nhanh chóng.
- DevOps và các lập trình viên muốn triển khai web đơn giản.
- Những ai cần reverse proxy mà không muốn dùng Nginx hoặc HAProxy.
6 bước cài đặt Caddy Webserver trên Ubuntu 24.04
Bước 1: Cài đặt Caddy
Mặc định, Ubuntu 24.04 không có Caddy trong kho APT, nhưng bạn có thể dễ dàng thêm kho chính thức từ nhà phát hành và cài đặt chỉ với vài lệnh:
# Thêm khóa GPG
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
# Thêm kho lưu trữ Caddy vào hệ thống
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
# Cập nhật danh sách gói và cài đặt Caddy
sudo apt update
sudo apt install caddy
Sau khi cài xong, bạn có thể kiểm tra phiên bản bằng:
caddy version
Bước 2: Cho phép kết nối HTTP và HTTPS qua tường lửa
Caddy sử dụng port 80 (HTTP) và 443 (HTTPS), bạn cần đảm bảo các port này được mở:
sudo ufw allow 80
sudo ufw allow 443
sudo ufw reload
Nếu UFW chưa bật, chạy thêm:
sudo ufw allow 22 && sudo ufw enable
Bước 3: Kích hoạt và quản lý dịch vụ Caddy Webserver
Caddy hoạt động như một dịch vụ hệ thống. Để khởi động cùng hệ thống và kiểm soát dịch vụ:
sudo systemctl enable caddy
sudo systemctl start caddy
sudo systemctl status caddy
Nếu mọi thứ hoạt động bình thường, bạn có thể truy cập địa chỉ IP của máy chủ để kiểm tra trang web mặc định: http://YOUR_SERVER_IP
Bước 4: Tạo máy chủ ảo Caddy
Giờ mình sẽ tạo một website đơn giản để phục vụ từ Caddy. Ví dụ sử dụng tên miền example.com
.
- Tạo thư mục chứa trang web:
sudo mkdir -p /var/www/example.com
- Tạo tệp HTML mẫu:
sudo nano /var/www/example.com/index.html
- Dán vào nội dung HTML ví dụ:
<html>
<head><title>Chào từ Caddy!</title></head>
<body><h1 align="center">Hello, world! Đây là Caddy Webserver</h1></body>
</html>
Bước 5: Cấu hình Caddyfile
Caddy sử dụng file cấu hình chính là Caddyfile
, nằm ở /etc/caddy/
.
- Sao lưu cấu hình mặc định:
sudo mv /etc/caddy/Caddyfile /etc/caddy/Caddyfile.default
- Tạo file cấu hình mới:
sudo nano /etc/caddy/Caddyfile
Nội dung mẫu:
example.com {
root * /var/www/example.com
file_server
tls admin@example.com
log {
output file /var/log/caddy/example.log
format console
}
Giải thích nhanh các chỉ thị:
example.com
: Tên miền bạn muốn cấu hình.root
: Đường dẫn đến thư mục chứa mã nguồn web.file_server
: Bật tính năng phục vụ tệp tĩnh.tls
: Tự động tạo chứng chỉ SSL miễn phí với email đăng ký.log
: Ghi log truy cập và lỗi.
Bước 6: Kiểm tra và tải lại cấu hình
Trước khi áp dụng, hãy kiểm tra xem Caddyfile có lỗi cú pháp không:
caddy validate
Nếu không có lỗi, hãy tải lại dịch vụ Caddy:
sudo caddy reload
Bước 7: Kiểm tra kết quả
Truy cập trình duyệt đến:
https://example.com
Nếu bạn đã trỏ đúng tên miền về địa chỉ IP máy chủ, Caddy sẽ tự động tạo chứng chỉ SSL và hiển thị nội dung từ index.html
bạn đã tạo.
Bảo mật máy chủ Caddy và thiết lập tường lửa
Sau khi đã cài đặt và cấu hình Virtual Host cho Caddy, bạn nên thực hiện một vài bước bảo mật cơ bản để đảm bảo máy chủ không bị can thiệp trái phép, đồng thời mở các port tường lửa cần thiết để truy cập website.
1. Bảo vệ file cấu hình Caddy
Mặc định, file cấu hình của Caddy nằm trong thư mục /etc/caddy/
. Để hạn chế người dùng không được phép chỉnh sửa, bạn nên gán quyền sở hữu và quyền truy cập phù hợp như sau:
- Gán quyền sở hữu thư mục cho user
caddy
:
sudo chown -R caddy:caddy /etc/caddy
- Hạn chế quyền đọc/ghi file
Caddyfile
:
sudo chmod 660 /etc/caddy/Caddyfile
- Kiểm tra lại quyền:
ls -l /etc/caddy/
Đầu ra mẫu:
-rw-rw---- 1 caddy caddy 168 Jun 2 15:20 Caddyfile
-rw-r--r-- 1 caddy caddy 769 Jun 2 12:07 Caddyfile.default
2. Thiết lập tường lửa với UFW
Caddy sử dụng các cổng:
80
(HTTP)443
(HTTPS)
Bạn cần đảm bảo rằng các port này được phép thông qua tường lửa.
- Kiểm tra trạng thái UFW:
sudo ufw status
Nếu UFW chưa được kích hoạt, bạn cần bật nó và cho phép kết nối SSH trước để tránh bị khóa máy chủ:
sudo ufw allow 22
sudo ufw enable
- Cho phép HTTP và HTTPS:
sudo ufw allow 80
sudo ufw allow 443
- Tải lại tường lửa:
sudo ufw reload
3. Kiểm tra truy cập website
Sau khi hoàn tất, bạn có thể truy cập trình duyệt với tên miền đã cấu hình để xác minh website đã hoạt động:
https://example.com
Nếu không truy cập được, hãy kiểm tra log trong Caddy để tìm nguyên nhân:
cat /var/log/caddy/example.log
Vietnix – Giải pháp lưu trữ tốc độ cao và an toàn cho website của bạn
Vietnix cung cấp các dịch vụ hosting và VPS chất lượng cao, đáp ứng nhu cầu tối ưu tốc độ tải trang, đảm bảo hiệu suất ổn định cùng tính bảo mật vượt trội. Với hệ thống máy chủ hiện đại được đặt tại trung tâm dữ liệu đạt chuẩn quốc tế, cùng đội ngũ kỹ thuật chuyên môn cao luôn sẵn sàng hỗ trợ 24/7, Vietnix giúp website của bạn hoạt động mượt mà, an toàn và liên tục. Từ các cá nhân, doanh nghiệp nhỏ đến những hệ thống web lớn cần hiệu năng cao, dịch vụ của Vietnix đều mang lại sự linh hoạt, tiết kiệm và đáng tin cậy.
Thông tin liên hệ:
- Website: https://vietnix.vn/
- Hotline: 1800 1093
- Email: sales@vietnix.com.vn
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, TP HCM.
Câu hỏi thường gặp
Làm thế nào để cấu hình Caddy với một website tĩnh?
Tạo một thư mục chứa website, viết Caddyfile chỉ định root
và file_server
, sau đó chạy caddy reload
.
Caddy tự động cấp SSL như thế nào?
Khi cấu hình Caddyfile với tên miền thật, Caddy sẽ tự động dùng Let’s Encrypt để cấp chứng chỉ SSL.
Làm thế nào để bảo mật file Caddyfile khỏi người dùng không được phép?
Bạn nên đổi quyền sở hữu file về caddy:caddy
và đặt quyền đọc/ghi thành 660
để giới hạn truy cập.
Có thể dùng Caddy thay thế Nginx hoàn toàn không?
Trong nhiều trường hợp, có. Caddy hỗ trợ reverse proxy, load balancing, và HTTP/3, đủ để thay thế Nginx cho nhiều ứng dụng web.
Có thể cấu hình Caddy phục vụ nhiều website cùng lúc không?
Có, bạn chỉ cần thêm nhiều khối cấu hình domain trong cùng một Caddyfile.
Tại sao sau khi reload Caddy không áp dụng cấu hình mới?
Có thể do lỗi cú pháp trong Caddyfile hoặc dịch vụ chưa được khởi động lại đúng cách (sudo caddy reload
).
Caddy có hỗ trợ cấu hình dạng JSON không?
Có, Caddy hỗ trợ cấu hình qua JSON bên cạnh Caddyfile. Bạn có thể dùng lệnh caddy adapt
để chuyển đổi giữa hai định dạng.
Lời kết
Caddy Webserver giúp đơn giản hóa quá trình triển khai và bảo mật website với tốc độ cao, cấu hình rõ ràng và tự động hóa mạnh mẽ. Nếu bạn gặp bất kỳ khó khăn nào khi cài đặt hoặc cấu hình Caddy trên Ubuntu 24.04, đừng ngần ngại để lại bình luận bên dưới. Ngoài ra, nếu bạn cần một giải pháp lưu trữ chuyên nghiệp và ổn định, hãy cân nhắc các dịch vụ tại Vietnix. Mình luôn sẵn sàng hỗ trợ bạn tối ưu hệ thống một cách an toàn và hiệu quả.
Mọi người cũng xem: