下面將演示如何通過 Caddy 完成 HTTPS 站點。只需要 4 步:
Tips 例子用的域名為: 修改為你的域名即可。
第一步:安裝域名總是自動轉掃到https,采用上面介紹的命令安裝
第二步:設置域名解析地址,在購買域名的網站設置。如下圖:
設置完生效需要幾分鐘,可通過下面的命令檢查是否生效:
curl "https://cloudflare-dns.com/dns-query?name=caddy.hellogithub.com&type=A" -H "accept: application/dns-json"
域名設置生效,返回如下:
{"Status":0,"TC":false,"RD":true,"RA":true,"AD":false,"CD":false,"Question":[{"name":"caddy.hellogithub.com","type":1}],"Answer":[{"name":"caddy.hellogithub.com","type":1,"TTL":592,"data":"107.150.122.176"}]}
第三步:創建配置文件 ,無需額外的開啟 HTTPS 的設置:
caddy.hellogithub.com
respond "Hello HTTPS!"
域名訪問返回的內容
第四步:啟動,在同一目錄下執行命令:sudo caddy run
Caddy 默認使用執行命令目錄下的 文件內的配置。
最后,訪問 檢驗效果吧!
四、上手教程
這里將從 Caddy 常用命令開始,再到配置講解,最后會通過一個實際案例來展示如何用 Caddy 配置網站和上線。
4.1 常用命令
4.2 配置文件
Caddy 的原生配置文件使用的是 JSON 格式。但是為了用戶編寫方便它提供了 作為接口讓用戶可以快速配置站點信息,運行時 Caddy 會自動將 的配置信息轉為 JSON 配置文件。
所能提供功能不如 JSON 配置文件強大,但是對于不需要復雜配置的用戶而言完全夠用了。
的配置指令格式如下:
directive [] { # matcher 代表匹配器,如果提供則該指令將只對 matcher 描述的資源進行響應
subdirective [] # 子指令
}
的文件結構如圖所示:
4.3 演示
下面將演示如何用 Caddy 搭建站點,加深理解配置格式和命令使用。
目錄結構:
.
├── Caddyfile
├── index.html
└── public
└── HG.html
兩個頁面文件 index.html 和 HG.html 的內容如下:
Hello World!
你好,世界!

HelloGitHub
HelloGitHub
配置內容如下:
# 如果本機沒有 wordpress 則注釋這一塊兒的站點配置
#:80 { # 部署一個 wordpress 站點
# root * /var/www/wordpress
# php_fastcgi unix//run/php/php-version-fpm.sock # 配置一個 fastcig 服務

# file_server # 配置一個文件服務
#}
http://localhost:3000 {
basicauth /public/* {
# 匹配訪問 localhost:3000/public/* 的請求,為其加上登陸保護
HG JDJhJDE0JGEySk9janFMdHlBY2Y0aVdQZklQak9HcmwzNDZhNFg0N3V5Ny9EZkZMZHB1Nkt4ZE5BNGJt
# 用戶名 HG 密碼 HelloGitHub,密碼使用 caddy hash-passowrd 指令生成
}
root * ./ # 設置當前站點根目錄為當前文件夾,* 表示匹配所有的 request
templates
file_server {
# 配置當前站點為靜態文件服務器,可用于博客系統的搭建
hide .git # 隱藏所有的 .git 文件
}
}

:4000 {
reverse_proxy /public/* http://localhost:3000 # 配置反向代理
# 只會匹配 locahost:4000/public 的請求,轉發到 localhost:3000/public/
}
在當前目錄輸入:
$ caddy run # 啟動 Caddy
最后,效果如下:
訪問::3000 可以看到頁面展示 “你好,世界!”訪問::3000//HG.html 提示輸入用戶名和密碼,驗證正確后才能看到頁面。訪問::4000 則會自動跳轉到端口 3000 的頁面4.4 提供接口管理方式
Caddy 除了簡單易懂的配置文件方式,還提供了管理配置的接口。通過這些接口可以輕松實現 Web 服務器管理自動化、集成發布等高級功能。
提供的接口和功能:
由于篇幅問題這里就不再進行演示了,如果您想深入了解可以閱讀 Caddy 的官方文檔。
五、總結
看到這里你應該對 Caddy 有了一些了解,有沒有一種相見恨晚的感覺?
雖然它的性能比不了 Nginx,但如果論上手的難易度 Caddy 甩 Nginx 幾條街!主要是默認開啟 HTTPS 功能太香了,你什么都不用管就可以免費、快速、輕松開啟網站 HTTPS。
最后域名總是自動轉掃到https,如果你想搭建個靜態博客或小站,快去試試 Caddy 吧!香不香只有“吃”過才知道~
這里是 推出的《講解開源項目》系列,為您叩開開源項目的大門。