下面將演示如何通過(guò) Caddy 完成 HTTPS 站點(diǎn)。只需要 4 步:
Tips 例子用的域名為: 修改為你的域名即可。
第一步:安裝域名總是自動(dòng)轉(zhuǎn)掃到https,采用上面介紹的命令安裝
第二步:設(shè)置域名解析地址,在購(gòu)買(mǎi)域名的網(wǎng)站設(shè)置。如下圖:
設(shè)置完生效需要幾分鐘,可通過(guò)下面的命令檢查是否生效:
curl "https://cloudflare-dns.com/dns-query?name=caddy.hellogithub.com&type=A" -H "accept: application/dns-json"
域名設(shè)置生效,返回如下:
{"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"}]}
第三步:創(chuàng)建配置文件 ,無(wú)需額外的開(kāi)啟 HTTPS 的設(shè)置:
caddy.hellogithub.com
respond "Hello HTTPS!"
域名訪問(wèn)返回的內(nèi)容
第四步:?jiǎn)?dòng),在同一目錄下執(zhí)行命令:sudo caddy run
Caddy 默認(rèn)使用執(zhí)行命令目錄下的 文件內(nèi)的配置。
最后,訪問(wèn) 檢驗(yàn)效果吧!
四、上手教程
這里將從 Caddy 常用命令開(kāi)始,再到配置講解,最后會(huì)通過(guò)一個(gè)實(shí)際案例來(lái)展示如何用 Caddy 配置網(wǎng)站和上線。
4.1 常用命令
4.2 配置文件
Caddy 的原生配置文件使用的是 JSON 格式。但是為了用戶(hù)編寫(xiě)方便它提供了 作為接口讓用戶(hù)可以快速配置站點(diǎn)信息,運(yùn)行時(shí) Caddy 會(huì)自動(dòng)將 的配置信息轉(zhuǎn)為 JSON 配置文件。
所能提供功能不如 JSON 配置文件強(qiáng)大,但是對(duì)于不需要復(fù)雜配置的用戶(hù)而言完全夠用了。
的配置指令格式如下:
directive [] { # matcher 代表匹配器,如果提供則該指令將只對(duì) matcher 描述的資源進(jìn)行響應(yīng)
subdirective [] # 子指令
}
的文件結(jié)構(gòu)如圖所示:
4.3 演示
下面將演示如何用 Caddy 搭建站點(diǎn),加深理解配置格式和命令使用。
目錄結(jié)構(gòu):
.
├── Caddyfile
├── index.html
└── public
└── HG.html
兩個(gè)頁(yè)面文件 index.html 和 HG.html 的內(nèi)容如下:
Hello World!
你好,世界!

HelloGitHub
HelloGitHub
配置內(nèi)容如下:
# 如果本機(jī)沒(méi)有 wordpress 則注釋這一塊兒的站點(diǎn)配置
#:80 { # 部署一個(gè) wordpress 站點(diǎn)
# root * /var/www/wordpress
# php_fastcgi unix//run/php/php-version-fpm.sock # 配置一個(gè) fastcig 服務(wù)

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

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