Caddy
功能跟nginx相似, 由 Golang所寫 且提供自動renew SSL.
Install
https://caddyserver.com/docs/install#debian-ubuntu-raspbian
Mac
brew install caddy
Ubuntu
Stable releases:
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo tee /etc/apt/trusted.gpg.d/caddy-stable.asc
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy
2. Candyfile
https://caddyserver.com/docs/caddyfile-tutorial
Ubuntu
Caddy 預設設定檔會讀取 /etc/caddy/Caddyfile
先檢查是否有此資料夾,沒有的話就新增一個
sudo mkdir /etc/caddy
sudo touch /etc/caddy/Caddyfile
Caddyfile example
kkk.com.tw {
# Set this path to your site's directory.
root * /usr/share/caddy
try_files {path} /index.html
# Enable the static file server.
file_server
tls kimi0230@gmail.com
# Another common task is to set up a reverse proxy:
# reverse_proxy localhost:8080
# Or serve a PHP site through php-fpm:
# php_fastcgi localhost:9000
}
yyy.com.tw {
reverse_proxy /* 127.0.0.1:5566
file_server
}
3. Caddy 會將 SSL 放在 /etc/ssl/caddy
沒有的話要先建立資料夾
sudo mkdir /etc/ssl/caddy
sudo chown -R root:root /etc/ssl/caddy
sudo chmod 0770 /etc/ssl/caddy
4. 啟動 Caddy
方法ㄧ打指令
caddy adapt --config /path/to/Caddyfile caddy reload
caddy run
方法二: 開機自動執行
# 重新載入 service
sudo systemctl daemon-reload
# 開機自動啟動
sudo systemctl enable caddy
5. 啟動 Caddy 看看
sudo systemctl start caddy # 啟動 Caddy
sudo systemctl status caddy # 檢視 Caddy 狀態

6. dig
nslookup leetcode.com
dig leetcode.com
7. 其他
Basic auth
https://caddyserver.com/docs/caddyfile/directives/basicauth
- 先用hash-password 產生password
caddy hash-password --plaintext <your password> - 在 caddy file上補上
Syntax
basicauth [<matcher>] [<hash_algorithm> [<realm>]] { <username> <hashed_password_base64> [<salt_base64>] ... }
kimi.example.com {
basicauth /* {
kimi xxxxxxxxxxxxxxxxxxxxxxxxxxxx
}
}