CowboYim

一個無文筆無技術無經驗的博客

CaddyServer 教學 - Part1

最近收到一位網友的電郵,向我查詢 CaddyServer 的使用問題。

真的沒想到會因為 Caddy 而有人看到這個網站,既然是這樣就順便編寫教學文吧。

What is Caddy?

Caddy is a web server like Apache, nginx, or lighttpd, but with different goals, features, and advantages.

The purpose of Caddy is to streamline an authentic web development, deployment, and hosting workflow so that anyone can host their own web sites without requiring special technical knowledge.

Caddy is also the first and only web server to serve all live sites over HTTPS by default.

根據官網的形容,Caddy 是與 Apache, nginx, lighttpd 相似的 Web Server 程式, 不過就有不同的目標,功能和優勢。

Caddy 主打易用性,希望任何人不需要特定知識技術就可以建立自己的 Web Server. (這個真的能做到嗎?)

而 Caddy 原生支援 Let’s Encrypt,所有網頁預設使用 HTTPS.

另外 Caddy 亦受惠於 Go 的跨平台特性,支援包括 Windows, Linux, Mac 等系統。


Part 1 會講述 Go 及 Caddy 的安裝,基本 Caddyfile 的設定。

以下指令適合用於 CentOS 6.5 x64 系統,其他系統會有差異。

1) 下載 Go - https://golang.org/dl/

curl -O https://storage.googleapis.com/golang/go1.6.linux-amd64.tar.gz 

現時最新版是1.6,curl 會下載文件至當前文件夾,並命名為 go1.6.linux-amd64.tar.gz

2) 下載 CaddyServer - https://caddyserver.com/download/

可跟據自己的使用選取不同的插件,如 hugo, 即 Hugo 的管理面板

scp caddy_linux_amd64_custom.tar.gz user@ip:

以 Secure Copy 上傳 Caddy 程序至主機.

3) 安裝 Go 及 Caddy

sudo tar -C /usr/local -xzf go1.6.linux-amd64.tar.gz

解壓 go 至 /usr/local 文件夾

sudo tar -C /usr/local/go/bin -xzf caddy_linux_amd64_custom.tar.gz

解壓 caddy 至 /usr/local/go/bin 文件夾

sudo vim /etc/profile

新增 export PATH=$PATH:/usr/local/go/bin 至文件末

設定 PATH 容許 go 在不同文件夾中使用

sudo reboot

重新開機

4) 測試 Go 及 Caddy

go version

會回答當前安裝版本,如 go version go 1.6 linux/amd64

caddy -version

會回答當前安裝版本,如 Caddy 0.8.2

5) 設定 Caddyfile - https://caddyserver.com/docs/caddyfile

這個相等於 apache 的 httpd.conf 和 nginx 的 nginx.conf

sudo vim Caddyfile

增加

localhost:80
root public
gzip
log

localhost:80 指地址和 port number

root 指網站文件路徑

gzip 指啟動 gzip 壓縮

log 指啟動存取記錄

6) Port binding

sudo setcap cap_net_bind_service=+ep /usr/local/go/bin/caddy

7) 啟動 Caddy

caddy

基本的運作就是這樣,下一篇會有更多 Caddy 教學。