以下是 Caddy 部署搭建及相关命令的 50 个实例:
-
安装 Caddy:
https://caddyserver.com/docs/install#debian-ubuntu-raspbian
-
启动 Caddy:
caddy start
-
停止 Caddy:
caddy stop
-
重新加载 Caddy 配置:
caddy reload
-
查看 Caddy 日志:
journalctl -u caddy.service --no-pager
-
使用 Caddyfile 配置文件启动 Caddy:
caddy run --config /path/to/Caddyfile
-
使用 JSON 配置文件启动 Caddy:
caddy run --config /path/to/caddy.json
-
使用 YAML 配置文件启动 Caddy:
caddy run --config /path/to/caddy.yaml
-
检查 Caddyfile 是否有语法错误:
caddy validate --config /path/to/Caddyfile
-
使用自定义插件启动 Caddy:
caddy run --plugin myplugin=<path>
-
使用 TLS-SNI-01 插件启用自定义 ACME CA:
caddy run --acme-ca http://myca.example.com --acme-ca-sni-01
-
使用 DNS 插件启用自定义 ACME CA:
caddy run --acme-ca http://myca.example.com --acme-ca-dns <provider>
-
启用 HTTP 服务:
localhost # 或者 http://localhost
-
启用 HTTPS 服务:
https://example.com
-
启用 HTTP2:
localhost { http2 }
-
启用自动 HTTPS:
example.com { tls { on_demand } }
-
启用 TLS 插件:
https://example.com { tls { cert_file /path/to/cert.pem key_file /path/to/key.pem } }
-
使用 Let’s Encrypt 启动自动 HTTPS:
https://example.com { tls { dns cloudflare } }
-
使用 ACME DNS-01 验证启用证书:
https://example.com { tls { dns cloudflare } }
-
启用 gzip 压缩:
https://example.com { encode gzip }
-
设置默认重定向:
http://example.com { redir https://{host}{uri} }
-
自定义错误页面:
http://example.com { errors { 404 /custom_error.html } }
-
启用访问日志:
http://example.com { log { output file /var/log/access.log } }
-
启用错误日志:
http://example.com { log { output file /var/log/error.log { roll_size 10MiB } } }
-
启用反向代理:
http://example.com { reverse_proxy localhost:8080 }
-
使用自定义 HTTP 请求头:
http://example.com { header { X-My-Header "My value" } }
-
使用自定义响应头:
http://example.com { header / { X-Frame-Options "SAMEORIGIN" } }
-
使用 rewrite 插件重写 URL:
http://example.com { rewrite /api/* /v1{uri} }
-
使用 uri 来匹配 URL:
http://example.com { uri /api/* reverse_proxy localhost:8080 }
-
使用 path_regexp 来匹配 URL:
http://example.com { @api path_regexp ^/api/.* reverse_proxy localhost:8080 }
-
监听 Unix 套接字:
unix//var/run/caddy.sock # 或者 unix:///var/run/caddy.sock
-
监听 TCP 端口:
localhost:3000
-
监听多个域名:
http://example.com, https://www.example.com { ... }
-
启用 WebDAV:
http://example.com { root /srv/webdav webdav }
-
启用 Markdown 处理:
http://example.com { markdown /docs }
-
启用 PHP 处理:
http://example.com { php_fastcgi localhost:9000 }
-
使用 basicauth 插件启用基本认证:
https://example.com { basicauth / user1 password1 reverse_proxy localhost:8080 }
-
使用 jwt 插件启用 JWT 认证:
https://example.com { jwt { path /api/* allow sub user1 } reverse_proxy localhost:8080 }
-
使用 rate_limit 插件启用速率限制:
https://example.com { rate_limit { key remote_ip limit 10 burst 20 } reverse_proxy localhost:8080 }
-
使用 header_up 插件修改请求头:
https://example.com { header_up X-Forwarded-For {remote} reverse_proxy localhost:8080 }
-
使用 header_down 插件修改响应头:
https://example.com { header_down Server "My Server" reverse_proxy localhost:8080 }
-
使用 log_replacer 插件替换日志记录:
https://example.com { log_replacer { obfuscate_field email } reverse_proxy localhost:8080 }
-
使用 rewrite 插件重写 URL:
https://example.com { rewrite * /{http.matchers.file.relative} file_server browse }
-
使用 handle 插件处理请求:
https://example.com { handle /api/* { reverse_proxy localhost:8080 } handle /admin/* { basicauth /admin user1 password1 file_server } file_server browse }
-
使用 redir 插件重定向请求:
https://example.com { redir /old-url /new-url file_server browse }
-
使用 jwt 插件实现访问控制:
https://example.com { jwt { path /api/* allow roles admin deny roles guest } reverse_proxy localhost:8080 }
-
使用 header 插件添加响应头:
https://example.com { header / { X-Content-Security-Policy "default-src 'self'" } reverse_proxy localhost:8080 }
-
使用 markdown 插件转换 Markdown 文件:
https://example.com { markdown /docs file_server browse }
-
使用 gzip 插件压缩文件:
https://example.com { gzip { level 6 } file_server browse }
-
使用 basicauth 插件实现基本认证:
https://example.com { basicauth / user1 password1 reverse_proxy localhost:8080 }
这些实例涵盖了 Caddy 部署搭建及相关命令的许多不同用法和场景。您可以将它们作为参考来配置、优化和管理您的 Caddy 服务器。