关于Caddy
一个简单,轻量,且对新手友好的web服务器,甚至可以自动帮你部署SSL证书,对于新手来说相对友好。
PS:不过我现在并不用它了,Caddy当前版本对HTTP/3支持存在一定的问题,所以我现在使用Nginx-quic了,哪天有机会再另写教程~
安装Caddy
配置软件源
安装必要依赖:
PLAINTEXT
1 |
apt install -y debian-keyring debian-archive-keyring apt-transport-https |
安装密钥及镜像源:
PLAINTEXT
1 2 |
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 |
最后更新软件源并安装Caddy即可:
PLAINTEXT
1 2 |
apt update apt install caddy |
看到如下提示就完成啦:
配置Caddy
创建网站及证书目录
创建证书目录
其实Caddy可以自动申请证书的,不过如果你要用自己的证书就需要创建一个文件夹来证书啦~
PLAINTEXT
1 2 |
cd /etc/ssl mkdir caddy |
创建网站目录
PLAINTEXT
1 2 3 4 5 |
cd / mkdir www cd www mkdir wwwroot mkdir log |
其中wwwroot用了放置网站根目录,log用来存储网站日志。
赋予权限
PLAINTEXT
1 2 |
sudo chown -R www-data:root /www sudo chmod 0777 /www/log |
编辑Caddy配置文件
Caddy的配置文件Caddyfile在/etc/caddy中,可以下载后编辑完再上传或直接用vim来进行编辑,看个人喜好,Mobaxterm软件左侧其实是个文件浏览器,可以在此处进行文件的浏览和上传下载,下面是一份示例文件,更多使用方法请参考官方文档:
PLAINTEXT
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
// 此处的配置是用来支持HTTP3的,若不需要删除即可 { servers { protocol { experimental_http3 } } } // 一个普通的网站示例,r2wind.com替换成你喜欢的域名 r2wind.com { // 此处配置网站根目录,请将页面文件上传至网站根目录 root * /www/wwwroot/r2wind.com/public // 配置SSL证书路径,若不配置,Caddy会帮你自动申请并配上 tls /etc/ssl/caddy/r2wind.cn.crt /etc/ssl/caddy/r2wind.cn.key // 自定义错误页文件,若不需要删除即可 handle_errors { rewrite * /{http.error.status_code}.html file_server } // 日志保存路径,如不需要保存访问日志可删除 log { output file /www/log/r2wind_com.log } // 开启Gzip压缩,若不需要可删除 encode gzip file_server // 用来添加响应头 header { // 禁用了客户端的 MIME 类型嗅探行为,若不需要请删除 X-content-type-tptions nosniff // 拒绝嵌入其他网站,若不需要请删除 X-frame-options DENY // HSTS响应头,若不需要请删除 Strict-Transport-Security max-age=63072000;includeSubDomains;preload } } // 一个反向代理示意配置 yjz.hk { // 指定代理网页访问地址https://xx.r2w.dev reverse_proxy https://xx.r2w.dev { // 指定请求域名hk.r2w.dev header_up Host {hk.r2w.dev} } // 下面的配置在上面已经介绍过了,这里不再过多赘述 tls /etc/ssl/caddy/r2wind.cn.crt /etc/ssl/caddy/r2wind.cn.key handle_errors { rewrite * /{http.error.status_code}.html file_server } log { output file /www/log/yjz_hk.log } encode gzip file_server header { X-content-type-tptions nosniff x-xss-protection: 1; mode=block Strict-Transport-Security max-age=63072000;includeSubDomains;preload } } // 一个重定向示例配置 www.yjz.hk { // 指定重定向后的网站地址并携带相关参数 redir https://yjz.hk{uri} } // 一个多域名重定向示例配置,多个域名记得用","隔开,逗号后记得先打空格再输入域名 dnstest.cc, www.dnstest.cc, r2wind.net, www.r2wind.net { redir https://r2wind.cn } // 一个多域名网站示例配置,和普通网站配置一样,只不过多了几个域名 r2wind.com,r2wind.net, r2wind.cn { // 此处配置网站根目录,请将页面文件上传至网站根目录 root * /www/wwwroot/r2wind.com/public // 配置SSL证书路径,若不配置,Caddy会帮你自动申请并配上,注意:此处最好不要指定SSL证书,除非你的证书是多域名的 tls /etc/ssl/caddy/r2wind.cn.crt /etc/ssl/caddy/r2wind.cn.key // 自定义错误页文件,若不需要删除即可 handle_errors { rewrite * /{http.error.status_code}.html file_server } // 日志保存路径,如不需要保存访问日志可删除 log { output file /www/log/r2wind_com.log } // 开启Gzip压缩,若不需要可删除 encode gzip file_server // 用来添加响应头 header { // 禁用了客户端的 MIME 类型嗅探行为,若不需要请删除 X-content-type-tptions nosniff // 拒绝嵌入其他网站,若不需要请删除 X-frame-options DENY // HSTS响应头,若不需要请删除 Strict-Transport-Security max-age=63072000;includeSubDomains;preload } } |
重新加载配置文件
PLAINTEXT
1 |
systemctl reload caddy |
若配置没错则回车后不会出现任何提示
效果展示
这里就不展示了哈哈哈,将网站文件上传至网站根目录修改一下配置的文件重加载Caddy就好啦,然后配置域名解析后访问对应的域名即可。