//官方推薦一鍵安裝腳本
/* curl https://getcaddy.com | bash -s personal 或者 wget -qO https://getcaddy.com | bash -s personal http.git,dns 而後 which caddy 能夠看到caddy安裝到了/usr/local/bin/caddy 此時執行 caddy 再打開2015端口 就能夠看到web頁面了 */
複製代碼
配置文件放在 /etc/caddy裏javascript
sudo mkdir /etc/caddyphp
sudo touch /etc/caddy/Caddyfilejava
sudo chown -R root:www-data /etc/caddylinux
除了配置文件,caddy會自動生成ssl證書, 須要一個文件放置ssl證書nginx
sudo mkdir /etc/ssl/caddygit
sudo chown -R www-data:root /etc/ssl/caddygithub
sudo chmod 0770 /etc/ssl/caddyweb
由於 ssl 文件夾裏會放置私鑰,因此權限設置成 770 禁止其餘用戶訪問。 最後,建立一下放置網站文件的目錄,若是已經有了,就不須要建立了。後端
sudo mkdir /var/wwwapi
sudo chown www-data:www-data /var/www
systemd system + d 其中的d就是daemon 守護進程
//如何配置systemd
sudo curl -s https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linuxsystemd/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狀態
複製代碼
詳情查看文檔.
若是修改了Caddyfile但沒有生效,須要執行一下 sudo systemctl restart caddy.service 來重啓caddy
1: localhost:8080
地址能夠帶一個端口號,那麼 caddy 只會在這個端口上開啓 http 服務,而不會開啓 https,若是不 寫端口號的話,caddy 會默認綁定 80 和 443 端口,同時啓動 http 和 https 服務。地址後面能夠 再跟一大堆指令(directive)。Caddyfile 的基本格式就是這樣,由一個網站地址和指令組成。
2.指令
指令能夠爲網站開啓某些功能.
gzip | browse | log /var/log/caddy/access.log |tls 391086388@qq.com | root /var/www
log 爲網站開始日誌記錄,後面的路徑爲日誌路徑
tls 自動申請https證書 郵箱爲CA申請人的郵箱
redir / wzfou.com/archive/{ur… 301
redir 指令帶了三個參數,意思是把全部的請求使用 301 重定向,這個指令在給網站換域名時頗有用在這個例子裏還使用了 {uri} 這樣的佔位符(placeholder),詳細的列表能夠在這裏查詢到:caddyserver.com/docs/placeh…
tls /etc/ssl/cert.pem /etc/ssl/key.pem
tls分別傳了證書和私鑰的路徑,這樣的話 caddy 就不會去自動申請證書,而是使用路徑給出證書
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}
}
//Caddyfile
//這是指令中複雜的一種,能夠帶不少參數,因此須要{}括起來.好比上面的herder指令
6-10 行的 header 指令表明爲全部的 /api/xxx 的請求加上 Access-Control-Allow-Origin 和
Access-Control-Allow-Methods 這兩個 header,從而能支持 javascript 跨域訪問 ,第 9 行表明
刪除 Server header,防止別人看到服務器類型。
11-13 行使用了 fastcgi 指令,表明把請求經過 fastcgi 傳給 php,ruby 等後端程序。
14-15 行,使用了 rewrite 指令,這個指令的做用是 服務器內部重定向 在下面的參數 to 後面,又
跟了三個參數,這個功能上有點相似 nginx 的 try_files 。告訴 caddy 須要先查看網址根目錄
/var/www 裏有沒有 {path} 對應的文件,若是沒有再查看有沒有 {path} 對應的目錄,若是都沒
有,則轉發給 index.php 入口文件。這個功能通常會用在 PHP 的 MVC 框架上使用。
複製代碼
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
}
基本的 caddy 配置就這些,更多的內容須要查閱官網文檔:
https://caddyserver.com/docs。
echo "http://gongluchen.com {
timeouts none
redir https://gongluchen.com{url}
}
https://gongluchen.com {
root /usr/local/caddy/www/file
timeouts none
tls 39108638@qq.com
gzip
filemanager / /usr/local/caddy/www/file {
database /usr/local/caddy/filemanager.db
}
}" > /usr/local/caddy/Caddyfile
複製代碼
localhost:2018
gzip
browse
複製代碼
$ caddy 就能夠當網盤了