Bestony | 白宦成 : 使用 Caddy 处理 WordPress

本文转自: https://www.ixiqin.com/2025/01/04/use-add-handle-wordpress/
仅做个人收藏,版权归原作者所有

8e256fa80397cf6d927d492a5541c495.jpg

在用了很久的 Docker 托管 WordPress 后, 近期我把 Blog 迁移到了腾讯云的香港轻量云主机上,以获得更快的访问体验。而考虑到轻量云主机那羸弱的性能,我将 HTTP Server 从 Nginx 切换到了 Caddy 上,来托管本 Blog。

你目前访问的站点便是一个基于 Caddy 托管的 WordPress 站点。

安装 Caddy

安装 Caddy 的过程不需要太过赘述,遵循 Caddy 官方安装文档当中的指南安装即可。

安装 PHP

完成了 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 官方的支持,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 的站点的配置。

其他配置

对静态文件提供单独的 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    
}  
  

配置缓存头

除了静态文件的 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"  
  

发表回复