无用挂件の日记

Caddy——从建站到跑路

受够了Nginx的臃肿,决定换Caddy。
Caddy是使用Go语言编写的一个优秀的WebServer,具有轻量、易于配置、高效、支持IPv6等特性。
之前拿Caddy只是玩玩而已,这次可是真的用于生产环境(滑稽)。就此整理一番。

安装

推荐使用doub.io的一键脚本:

1
wget -N --no-check-certificate git.io/c.sh && chmod +x c.sh && bash c.sh

支持一键安装常见Web应用:

1
2
3
4
5
6
7
8
bash c.sh -t //Typecho
bash c.sh -w //WordPress
bash c.sh -z //ZBlog
bash c.sh -k //KodExplorer
bash c.sh -l //Laverna
bash c.sh -v //v2Ray
bash c.sh -b //Rinetd BBR
bash c.sh -a //Backup

配置

这些指对于一般用户令完全够用,但是本文描述的是一个多站点实例,因而需要手动配置。
Caddyfile位于/etc/dylanbai8/caddy/目录下
如何配置可参看wzfou.com提供的教程(点此跳转),此处从略。

权限问题

这里的一键包采用了Caddy+PHP7+SQLite3,因而权限的正确配置是网站稳定运行的保证。
个人建议是:/www下的所有目录,所有人/组均设置为www-data,权限为755

注:可以通过id www-data查看www-data对应的uid

几处小坑

  • 一键包安装指定Web应用时会自动清空/www目录
  • 最低权限755能正常运行的前提是Owner&OwnerGroup为www-data
  • 如使用自定义SSL证书,需将公钥和私钥分别存放于/root/example.com.pem/root/example.com.key(CA证书可以换行接在公钥之后)(注意公钥文件后缀名是.pem而不是.crt)