Máy chủ Caddy (hay Caddy Web) là một máy chủ web mã nguồn mở được viết bằng GoLang và hỗ trợ HTTP/2. Nó sử dụng thư viện chuẩn GoLang để cung cấp chức năng HTTP. Một tính năng đáng chú ý của Caddy là HTTPS được bật theo mặc định. Đây là máy chủ web đầu tiên cung cấp các tính năng HTTPS mà không cần cấu hình bổ sung.
So với các máy chủ web thường được sử dụng của chúng tôi như Nginx và Apache, tính năng lớn nhất của Caddy là nó dễ triển khai. Nó có mô-đun máy chủ web cơ bản của apache hoặc nginx và cũng có một số chức năng độc đáo, chẳng hạn như: HTTP/. 2, HTTPS tự động, Đa lõi, Websockets, Markdown, IPv6 và hơn thế nữa.
Caddy có thể được sử dụng cho các trang web tĩnh và động. Tất nhiên, nhiều người đã thấy rằng Caddy rất dễ cài đặt và triển khai. Họ tích hợp Caddy với nhiều ứng dụng khác nhau như đĩa mạng và các bản tải xuống. Điều này không chỉ tận dụng được khả năng triển khai và cấu hình đơn giản của Caddy. , mà còn tối đa hóa việc Tiết kiệm tài nguyên máy chủ ở mức tối đa và tập trung vào việc phát triển và quản lý các ứng dụng của bên thứ ba.
Bài viết này sẽ chia sẻ cách cài đặt và sử dụng Caddy server, thêm các công cụ, script xây dựng website và:
- So sánh ba trình quản lý tệp trực tuyến xuất sắc (danh sách thư mục) - Directory Lister, h5ai và FileRun
- Cài đặt và cấu hình khói - công cụ giám sát hiệu suất mạng nguồn mở miễn phí triển khai chính/phụ trực quan
- Tập lệnh cài đặt OneinStack chỉ bằng một cú nhấp chuột - dễ dàng triển khai chứng chỉ Let's Encrypt và định cấu hình trang web HTTPS
PS: Đã cập nhật vào ngày 21 tháng 2 năm 2018. đang tìm kiếm một chương trình đĩa mạng miễn phí. Bạn cũng có thể thử điều này: Sử dụng Pydio để xây dựng bộ lưu trữ đám mây riêng miễn phí - đồng bộ hóa tự động nhiều thiết bị đầu cuối có thể phát video nhạc trực tuyến.
1. Phương pháp lắp đặt caddie
Trang web chính thức của Caddy:
- Trang web: https://caddyserver.com/
- Tải xuống: https://caddyserver.com/download
- Github: https://github.com/mholt/caddy
Chỉ có ba bước để cài đặt và triển khai Caddy. Đầu tiên, chọn phiên bản Caddy theo hệ điều hành máy chủ của bạn và tải xuống (cả Linux và Windows đều được hỗ trợ).
2. Phương pháp cấu hình caddie
2.1 Tạo file cấu hình
Trước tiên hãy tạo một tệp cấu hình và đặt nó vào /etc/caddy
.
sudo mkdir /etc/caddy
sudo touch /etc/caddy/Caddyfile
sudo chown -R root:www-data /etc/caddy
Ngoài tệp cấu hình, caddy sẽ tự động tạo chứng chỉ SSL và cần có một thư mục để đặt chứng chỉ SSL.
sudo mkdir /etc/ssl/caddy
sudo chown -R www-data:root /etc/ssl/caddy
sudo chmod 0770 /etc/ssl/caddy
Vì khóa riêng sẽ được đặt trong thư mục ssl nên quyền được đặt thành 770 để cấm người dùng khác truy cập vào nó. Cuối cùng, tạo thư mục chứa các tập tin trang web. Nếu nó đã tồn tại thì không cần phải tạo.
sudo mkdir /var/www
sudo chown www-data:www-data /var/www
2.2 Thiết lập khởi động
Sau khi tạo các file và thư mục này, chúng ta cần cấu hình caddy như một dịch vụ để nó có thể tự động chạy khi khởi động và dễ quản lý. Bởi vì hầu hết các bản phân phối hiện nay đều sử dụng systemd nên tôi sẽ chỉ nói về cách cấu hình systemd ở đây.
sudo curl -s https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linux-systemd/caddy.service -o /etc/systemd/system/caddy.service # 从 github 下载 systemd 配置文件
sudo systemctl daemon-reload # 重新加载 systemd 配置
sudo systemctl enable caddy.service # 设置 caddy 服务自启动
sudo systemctl status caddy.service # 查看 caddy 状态
2.3 Chỉnh sửa Caddyfile.
Bạn có thể trực tiếp sử dụng vim /etc/caddy/Caddyfile
để sửa đổi Caddyfile hoặc bạn có thể sửa đổi nó trên máy tính của riêng mình và tải nó lên máy chủ. Nếu bạn sửa đổi Caddyfile và nhận thấy nó không có hiệu lực, bạn cần thực thi sudo systemctl restart caddy.service
để khởi động lại caddy.
2.4 Định dạng tệp Caddy
Định dạng của Caddfile tương đối đơn giản. Đầu tiên, dòng đầu tiên phải là địa chỉ của trang web, ví dụ:
localhost:8080
hoặc
wzfou.com
Địa chỉ có thể mang số cổng, khi đó caddy sẽ chỉ mở dịch vụ http trên cổng này chứ không mở https. Nếu số cổng không được ghi, caddy sẽ liên kết các cổng 80 và 443 theo mặc định và bắt đầu dịch vụ http và https. cùng lúc. Địa chỉ có thể được theo sau bởi một loạt các hướng dẫn. Định dạng cơ bản của Caddyfile là thế này, bao gồm địa chỉ trang web và hướng dẫn.
chỉ thị 2.5
Mục đích của chỉ thị là kích hoạt một số chức năng nhất định cho trang web. Có ba dạng hướng dẫn. Trước tiên hãy nói về các hướng dẫn đơn giản nhất không có tham số, chẳng hạn như:
wzfou.com
gzip
Gzip ở dòng thứ 2 là hướng dẫn, có nghĩa là bật chức năng nén gzip để website có thể giảm lưu lượng khi truyền tải trang web. Định dạng của lệnh thứ hai là một lệnh có các tham số đơn giản:
wzfou.com
gzip
log /var/log/caddy/access.log
tls iwzfou@gmail.com
root /var/www/
Ở dòng thứ ba, lệnh log sẽ kích hoạt chức năng log cho website. Các thông số sau lệnh log sẽ cho caddy biết file log được lưu trữ ở đâu. Lệnh tls ở dòng thứ tư yêu cầu caddy kích hoạt https cho trang web và tự động đăng ký chứng chỉ. Tham số email sau đây nhằm thông báo cho CA về địa chỉ email của người nộp đơn. (caddy sẽ mặc định sử dụng let’s Encrypt để đăng ký và gia hạn chứng chỉ, rất tiện lợi)
Ngoài ra, có thể có nhiều hơn một tham số đơn giản, chẳng hạn như lệnh redir:
wzfou.com
gzip
log /var/log/caddy/access.log
tls /etc/ssl/cert.pem /etc/ssl/key.pem
root /var/www/
redir / https://wzfou.com/archive/{uri} 301
Lệnh redir ở trên có ba tham số, nghĩa là sử dụng chuyển hướng 301 cho tất cả các yêu cầu. Lệnh này rất hữu ích khi thay đổi tên miền của trang web. Ngoài ra, lệnh tls đã thay đổi. Nó không chỉ truyền tham số email mà còn truyền đường dẫn của chứng chỉ và khóa riêng tương ứng. Bằng cách này, caddy sẽ không tự động xin chứng chỉ mà sẽ sử dụng chứng chỉ được cung cấp. bằng con đường.
Trong ví dụ này, các phần giữ chỗ như {uri
cũng được sử dụng. Bạn có thể tìm thấy danh sách chi tiết tại đây: https://caddyserver.com/docs/placeholders. Loại lệnh cuối cùng có các tham số phức tạp. Loại lệnh này có thể chứa nhiều tham số, vì vậy nó cần được đặt trong một cặp dấu ngoặc nhọn, chẳng hạn như lệnh tiêu đề:
wzfou.com
gzip
log /var/log/caddy/access.log
tls iwzfou@gmail.com
root /var/www/
header /api {
Access-Control-Allow-Origin *
Access-Control-Allow-Methods "GET, POST, OPTIONS"
-Server
}
fastcgi / 127.0.0.1:9000 php {
index index.php
}
rewrite {
to {path} {path}/ /index.php?{query}
}
Các chỉ thị tiêu đề trong dòng 6-10 thể hiện việc thêm Access-Control-Allow-Origin
và Access-Control-Allow-Methods< vào tất cả các yêu cầu
/api/xxx
. > Hai tiêu đề này có thể hỗ trợ truy cập tên miền chéo javascript. Dòng 9 thể hiện việc xóa tiêu đề Máy chủ để ngăn người khác nhìn thấy loại máy chủ.
Các dòng 11-13 sử dụng lệnh fastcgi, nghĩa là yêu cầu được chuyển đến các chương trình back-end như php và ruby thông qua fastcgi.
Các dòng 14-15 sử dụng lệnh viết lại. Chức năng của lệnh này là chuyển hướng nội bộ đến máy chủ . Sau tham số sau đến
, có thêm ba tham số. tương tự try_files
cho nginx. Yêu cầu caddy trước tiên kiểm tra xem có tệp nào tương ứng với {path} trong thư mục gốc URL /var/www hay không. Nếu không có tệp nào tương ứng với {path}, thì hãy kiểm tra xem có tệp nào tương ứng với {path} hay không. không có, hãy chuyển tiếp nó tới tệp mục nhập index.php. Tính năng này thường được sử dụng trong khung MVC của PHP.
2.6 Trang web đa miền
Các URL được đề cập ở trên đều là URL của một tên miền, vậy nếu nhiều tên miền được triển khai trên cùng một máy chủ thì sao? Rất đơn giản, bạn chỉ cần mở rộng nó bằng dấu ngoặc nhọn sau tên miền như sau:
wzfou.com {
gzip
log /var/log/caddy/wzfou_com.log
tls iwzfou@gmail.com
root /var/www/
header /api {
Access-Control-Allow-Origin *
Access-Control-Allow-Methods "GET, POST, OPTIONS"
-Server
}
fastcgi / 127.0.0.1:9000 php {
index index.php
}
rewrite {
to {path} {path}/ /index.php?{query}
}
}
wzfou.com{
tls iwzfou@gmail.com
log /var/log/caddy/wzfou_com.log
redir / https://wzfou.com/{uri} 301
}
Đây là cấu hình caddy cơ bản. Để biết thêm thông tin, vui lòng tham khảo tài liệu trang web chính thức: https://caddyserver.com/docs.
3. Kịch bản xây dựng trang web bằng một cú nhấp chuột của Caddy
Sau khi xem cấu hình Caddy ở trên, một số bạn có thể thắc mắc liệu có script Caddy để xây dựng website chỉ bằng một cú nhấp chuột không?
3.1 Trình cài đặt Caddy-Web-Server
- Địa chỉ dự án: https://github.com/sayem314/Caddy-Web-Server-Installer
Yêu cầu hệ thống: Ubuntu 14.x
, 15.x
, 16.x
, Debian 7.x
, 8.x
, 9.x
, CentOS 6.8
, 7.2
. Chạy lệnh sau:
wget https://git.io/vra5C -O - -o /dev/null|bash
Sau đó sử dụng lệnh sau để thực hiện:
caddy start #开启Caddy Web Server
caddy stop #停止Caddy Web Server
caddy reload #重载Caddy Web Server
caddy restart #重启Caddy Web Server
caddy status #查看Caddy Web Server状态
caddy install #安装Caddy Web Server
caddy edit #编辑配置文件Caddyfile
caddy service #使Caddy Web Server成为一项服务(upstart/systemd)
caddy update #升级Caddy Web Server
caddy delete #卸载Caddy and data
caddy about #关于Caddy Web Server
caddy version #检测脚本/Caddy/PHP5-fpm版本信息
Lệnh cài đặt plugin:
caddy install http.cache,http.filemanager,http.ipfilter,http.ratelimit
Khi cài đặt caddy
, bạn sẽ được yêu cầu nhập tên miền và địa chỉ email của mình (nó sẽ tự động cấp ssl
cho bạn), sau đó sử dụng lệnh để khởi động caddy< ep2>!
虚拟主机文件夹:/var/caddywww
配置文件夹:/etc/Caddyfile
Đây là giao diện cài đặt thành công:
Bạn cũng có thể chèn âm thanh, video, v.v. trực tuyến.
4. Tóm tắt
Sử dụng Caddy làm máy chủ web hầu như chỉ mất vài phút để cài đặt và chạy. Tất nhiên, Caddy cũng có thể triển khai bộ đệm, sao chép, v.v. Các quy tắc cấu hình của Caddy cũng tương đối đơn giản. phút nghiên cứu trang web chính thức. Tài liệu có thể được sao chép bởi chính mình.
Caddy sẽ tự động cấp chứng chỉ Let’s Encrypt miễn phí nhưng trước tiên bạn cần phân giải tên miền cho máy chủ, nếu không sẽ gặp lỗi khi thêm máy chủ ảo. Liệu Caddy có thể được sử dụng làm môi trường sản xuất chính thức hay không vẫn còn là một câu hỏi, nhưng không có vấn đề gì khi sử dụng Caddy làm máy chủ HTTP đơn giản.