WP网络配置

以下内容仅作参考,不同主题插件适用范围略有差异。

Nginx

伪静态

location /
{
	 try_files $uri $uri/ /index.php?$args;
}

rewrite /wp-admin$ $scheme://$host$uri/ permanent;

资源文件缓存

location ~ .*\.(js|css|png|jpg|jpeg|gif|ico|bmp|swf|eot|svg|ttf|woff|woff2|webp|avif|mp4|webm|json|MOV)$ {
    expires 30d; 
    access_log off; 
    log_not_found off; 
}

禁止访问敏感文件

拒绝访问所有以点开头的隐藏文件,如 .git.env.htaccess

(排除 .well-known 目录,它用于 ACME/Let's Encrypt 证书验证)

location ~ /\.(?!well-known) {
    deny all;
    return 403;
}

拒绝访问备份和SQL文件

location ~* \.(sql|bak|backup|zip|tar|gz)$ {
    deny all;
    return 403;
}

CDN

WordPress规则。

不同主题缓存规则不一样,具体看主题实现方法,否则可能导致无法登陆。

文件后缀等于gif png bmp jpeg tif tiff zip exe wmv swf mp3 wma rar css flv mp4 txt ico js avif webm json woff2 woff svg flac MOV ttf缓存
HTTP 请求头Cookie存在不缓存
URL path等于/wp-admin/ /wp-json/*不缓存

验证缓存

x-site-cache-status:

HIT:你的文件已经命中缓存。这表示用户获取文件的方式途径为从CF缓存服务器中获取而非你的源服务器,不消耗你的服务器资源

MISS:已经在缓存服务器中查找了你所请求的文件,但是并没有找到,缓存服务器将会回源至你的服务器中获取该文件,当下次请求时该文件就会显示HIT

BYPASS:已经被要求不缓存该文件,用户将直接从网站源服务器中获取文件,这个通常是因为请求的文件响应了NO-Cache header

EXPIRED:自上次缓存之后,文件的缓存期限已经过期,将会再度回源至网站源服务器进行获取文件,当下次请求时该文件就会显示HIT

DYNAMIC:默认不缓存文件,也没有对应的缓存配置,用户将从网站源服务器获取该文件