檢視 Caddy 的原始碼
←
Caddy
跳至導覽
跳至搜尋
由於以下原因,您無權編輯此頁面:
您請求的操作只有這個群組的使用者能使用:
使用者
您可以檢視並複製此頁面的原始碼。
'''Caddy'''是一個[[HTTP]]伺服器,主打自動化[[HTTPS]]以及簡易的設定。 == 安裝 == 在[[Debian]]與[[Ubuntu]]上都可以使用官方的APT repository安裝: <syntaxhighlight lang="bash"> curl -Lfs https://dl.cloudsmith.io/public/caddy/stable/gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg; echo -e "deb [signed-by=/usr/share/keyrings/caddy-stable-archive-keyring.gpg] https://dl.cloudsmith.io/public/caddy/stable/deb/debian any-version main\ndeb-src [signed-by=/usr/share/keyrings/caddy-stable-archive-keyring.gpg] https://dl.cloudsmith.io/public/caddy/stable/deb/debian any-version main" | sudo tee /etc/apt/sources.list.d/caddy-stable.list; sudo apt update; sudo apt install -y caddy; sudo apt clean </syntaxhighlight> 另外下面的範例會用到transform,可以透過這個指令安裝: <syntaxhighlight lang="bash"> sudo caddy add-package github.com/caddyserver/transform-encoder </syntaxhighlight> === build.sh === 目前我在用的<code>/etc/caddy/build.sh</code>: <syntaxhighlight lang="bash"> #!/bin/bash xcaddy build \ --with github.com/caddyserver/transform-encoder \ --with github.com/jasonlovesdoggo/caddy-defender \ --with github.com/mholt/caddy-ratelimit \ --with github.com/shift72/caddy-geo-ip \ --with github.com/xcaddyplugins/caddy-trusted-cloudfront cp -f caddy /usr/bin/caddy.custom </syntaxhighlight> === xcaddy === xcaddy是官方維護的module管理套件,有蠻多module會需要透過xcaddy安裝,通常需要搭配[[Golang]]一起裝: <syntaxhighlight lang="bash"> curl -1sLf 'https://dl.cloudsmith.io/public/caddy/xcaddy/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-xcaddy-archive-keyring.gpg; curl -1sLf 'https://dl.cloudsmith.io/public/caddy/xcaddy/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-xcaddy.list; sudo apt update; sudo apt install -y golang xcaddy; sudo apt clean </syntaxhighlight> 這邊建議安裝新版的[[Golang]],LTS或是stable的系統所附的版本可能會太舊。 == 設定 == === Template === 重複使用設定的方法: <syntaxhighlight lang="nginx"> (subdomain-log) { log { format transform `{request>client_ip} - {request>user_id} [{ts}] "{request>method} {request>uri} {request>proto}" {status} {size} "{request>headers>Referer>[0]}" "{request>headers>User-Agent>[0]}"` { time_format "02/Jan/2006:15:04:05 +0000" } output file /var/log/caddy/{args[0]}_access.log { mode 0640 } } } bar.example.com { # ... import subdomain-log bar.example.com # ... } foo.example.com { # ... import subdomain-log foo.example.com # ... } </syntaxhighlight> === Rate Limit === 這邊搭配了geo_ip與rate_limit的外部套件處理: <syntaxhighlight lang="nginx"> geo_ip { db_path /usr/share/GeoLite2-Country.mmdb } rate_limit { zone nottw { match expression `{geoip.country_code} != "TW"` key {client_ip} events 60 window 5m } } </syntaxhighlight> == 相關連結 == * [[Golang]] == 外部連結 == * {{Official|https://caddyserver.com/}} {{en}} [[Category:軟體]]
此頁面使用了以下模板:
Template:En
(
檢視原始碼
)
Template:En icon
(
檢視原始碼
)
Template:ISO 639 name en
(
檢視原始碼
)
Template:Lan
(
檢視原始碼
)
Template:Language icon
(
檢視原始碼
)
Template:Official
(
檢視原始碼
)
Template:Official website
(
檢視原始碼
)
Module:Arguments
(
檢視原始碼
)
Module:Lan
(
檢視原始碼
)
Module:Official website
(
檢視原始碼
)
Module:URL
(
檢視原始碼
)
返回到「
Caddy
」。
導覽選單
個人工具
登入
命名空間
頁面
討論
臺灣正體
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
視圖
閱讀
檢視原始碼
檢視歷史
更多
搜尋
導覽
首頁
近期變更
隨機頁面
MediaWiki說明
工具
連結至此的頁面
相關變更
特殊頁面
頁面資訊