在用了很久的 Docker 托管 WordPress 后, 近期我把 Blog 迁移到了腾讯云的香港轻量云主机上,以获得更快的访问体验。而考虑到轻量云主机那羸弱的性能,我将 HTTP Server 从 Nginx 切换到了 Caddy 上,来托管本 Blog。
你目前访问的站点便是一个基于 Caddy 托管的 WordPress 站点。
安装 Caddy 的过程不需要太过赘述,遵循 Caddy 官方安装文档当中的指南安装即可。
完成了 Caddy 的安装后,则是安装 PHP,这里我使用的是 ondrej 维护的仓库
sudo add-apt-repository ppa:ondrej/php
sudo apt update
执行上述命令安装 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
完成安装后,就可以正常来配置 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 文件。
}
只需要这样的配置,你就可以完成一个最基础的 WordPress 的站点的配置。
按照上面的配置,其实所有的请求都会转发给 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
}
除了静态文件的 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"