IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    使用 Caddy 处理 WordPress

    白宦成发表于 2025-01-04 02:44:33
    love 0

    在用了很久的 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"
    
    


沪ICP备19023445号-2号
友情链接