Cài đặt và cấu hình Caddy Server

Tram Ho

Mở đầu

Bạn đã quá quen thuộc với các web server truyền thống như: Nginx, Apache, … Mình nghĩ bạn nên thử qua caddyserver. Bạn sẽ không còn lo lắng, mệt mỏi khi phải đi tìm đọc tài liệu, tìm kiếm thông cài đặt cấu hình để hệ thống hoạt động một cách trơn tru. Mà thay vào đó, bạn chỉ việc dành 1 phút để tạo và config server chỉ với một vài dòng code để hệ thống server bắt đầu chạy. Nó cực kỳ đơn giản, và các tài liệu sáng sủa dễ hiểu thì có thể trong tương lai gần nó sẽ là đối thủ của nginx.

Giới thiệu

Caddy là một nền tảng web server mạnh mẽ, được viết bằng Go là 1 open-source và đang được cộng đồng phát triển rất mạnh mẽ. Nó hướng tới HTTP/2.0 và mặc định sử dụng HTTPS. Ngoài ra còn là một lựa chọn tuyệt vời cho: load balancing, cổng api, ingress controller, process supervisor, task scheduler.

Cài đặt

Bạn có thể tải trực tiếp từ github sử dụng curl:

Sử dụng wget:

Cài đặt cho Debian, Ubuntu, Raspbian

Cài đặt cho Fedora, RedHat, CentOS

Fedora or RHEL/CentOS 8:

RHEL/CentOS 7:

Cài đặt cho macOS

Sau khi cài đặt xong bạn có thể kiểm tra xem caddy đã hoạt động chưa bằng lệnh:

Kiểm tra trạng thái của caddy:

Bạn có thể dừng caddy với lệnh :

Để nhận các thay đổi trong file config bạn có thể chạy lệnh:

Lưu ý : Không dừng service khi thay đổi config. Dừng service sẽ dẫn đến downtime hệ thông. thay vào đó hãy sử dụng lệnh reload để thay thế.

Cấu hình

Caddy cung cấp cho chúng ta 2 cách cấu hình với JSON file và Caddyfile:

Với Jsonfile

Đầu tiên chúng ta tạo 1 file json với nội dung sau:

Để apply file này chúng ta cần sử dụng 1 api của candy:

Để kiểm tra xem chúng ta đã cấu hình thành công hay chưa hãy dùng lệnh:

nếu xuất hiện “Hello, world!” thì chúc mừng bạn đã cấu hình thành công. bạn có thể tham khảo qua JSON document. tại đây. https://caddyserver.com/docs/json/

với Caddyfile

Để cấu hình với caddyfile bạn cần tạo một file với tên là Caddyfile
Để chạy được ứng dụng “Helllo world” như trên thì với Caddyfile thì hoàn toàn đơn giản như sau:

Như file cấu hình trên có dòng localhost đây là tên domain bạn cần cấu hình. Ngoài ra, để cấu hình https cho Caddy Server bạn có thể cấu hình nhanh chóng bằng cách sử dụng config tls internal, Caddy sẽ sử dụng tệp chứng chỉ cục bộ cho trang web này.

Ứng dụng

Giả sử một ứng dụng web của chúng ta có frontend được xây dựng với nuxtjs và được chạy ở cổng 3000. và api backend laravel chạy ở cổng 8000. vậy làm thế nào để forward vào ứng dụng này với Caddy. Rất đơn giản các bạn tạo 1 file Caddyfile với lệnh sau:

vậu là chúng ta đã cấu hình xong ứng dụng rồi với:
Client: localhost
Server API: localhost/api/

Trên đây là 2 cách cấu hình phổ biến của caddy. Thử so sánh qua 2 cách cấu hình này nhé. bạn có thể tham khảo trên trang chủ tại đây https://caddyserver.com/docs/getting-started

So sánh JSON và Caddyfile

So sánh ưu và nhược điểm của json và caddyfile:

Kết luận

Caddy vẫn còn khá mới mẻ. và đang được cộng đồng phát triển tích cực. Có lẽ một ngày không xa nó sẽ trở lên phổ biến. vậy hãy tìm kiểu nó ngay ngày hôm nay nhé các pro.
Chào, Thân ái và quết thắng !!!

Tham khảo :

https://caddyserver.com/

https://www.marketenterprise.vn/

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo