在用了很久的 Docker 托管 WordPress 后, 近期我把 Blog 迁移到了腾讯云的香港轻量云主机上,以获得更快的访问体验。在这次迁移后,出于 Hack 方便的目的,我将 Nginx 替换成了 Caddy。你目前访问的站点便是一个基于 Caddy 托管的 WordPress 站点。
安装 Caddy
安装 Caddy 的过程不需要太过赘述,遵循 Caddy 官方安装文档当中的指南安装即可。
安装 PHP
完成了 Caddy 的安装后,则是安装 PHP,这里我使用的是 ondrej 维护的仓库
sudo add-apt-repository ppa:ondrej/php
sudo apt update
Code language: Bash (bash)
执行上述命令安装 PPA 仓库,就可以继续执行 apt install php
来安装 php & 对应的版本。此外,记得安装相关的依赖包
apt-get install php-fpm php-mysql php-curl php-gd php-mbstring php-common php-xml php-xmlrpc -y
Code language: Bash (bash)
配置 Caddy
完成安装后,就可以正常来配置 Caddy 。得益于社区的集成和 Caddy 官方的支持,Caddy 配置 WordPress 的支持非常简单,可以直接使用 Caddyfile 格式来撰写。
example.ixiqin.com { # 这个配置是给 example.ixiqin.com
root * /data/caddy/example.ixiqin.com # 我的网站文件都放在 /data/caddy/xxx 下,/data 是我挂载的数据盘
log { #日志配置
output file /var/log/caddy/example.ixiqin.com.log # 日志路径
format console # 日志格式
}
request_body { # 请求体大小
max_size 20MB # 最大 20MB
}
encode zstd gzip # 支持 gzip 和 zstd 压缩
file_server # 直接提供静态文件(比如图片啥的)
php_fastcgi unix//run/php/php-fpm.sock # 使用 php_fastcgi 调用 php-fpm 来处理动态 php 文件。
}
Code language: PHP (php)
只需要这样的配置,你就可以完成一个最基础的 WordPress 的站点的配置。
其他配置
对静态文件提供单独的 404 返回
按照上面的配置,其实所有的请求都会转发给 php-fpm 来处理,从而造成额外的 PHP 资源浪费。因此,可以在配置当中加入如下代码,来让 Caddy 直接返回,从而避免对 PHP 性能的浪费。
@static_404 {
path_regexp \.(jpg|jpeg|png|webp|gif|avif|ico|svg|css|js|gz|eot|ttf|otf|woff|woff2|pdf)$
not file
}
respond @static_404 "Not Found" 404 {
close
}
Code language: JavaScript (javascript)
配置缓存头
除了静态文件的 404 处理,你还可以在 Caddy 当中配置静态文件的缓存,从而让浏览器更多的应用缓存,减少服务器的流量,提升加载速度。
@static {
path_regexp \.(jpg|jpeg|png|webp|gif|avif|ico|svg|css|js|gz|eot|ttf|otf|woff|woff2|pdf)$
}
header @static Cache-Control "max-age=31536000,public,immutable"
Code language: JavaScript (javascript)