WordPress有多个级别的缓存可以配置,如使用Redis缓存减少mysql数据库的压力,也可以使用nginx静态缓存减少php及mysql的压力,一般不会涉及到nginx系统配置文件nginx.conf
,只修改自己的网站配置文件即可,如xxx.com.conf
。
fastcgi_cache_path /your/path levels=1:2 keys_zone=your_keyword:128m inactive=1d max_size=10g;
fastcgi_temp_path /your/path2;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
fastcgi_cache_use_stale error timeout invalid_header http_500;
fastcgi_ignore_headers Cache-Control Expires Set-Cookie;
server{
...
set $skip_cache 0;
#post访问不缓存
if ($request_method = POST) {
set $skip_cache 1;
}
#动态查询不缓存
if ($query_string != "") {
set $skip_cache 1;
}
#具体的文章页面,缓存
#后台等特定页面不缓存(其他需求请自行添加即可)
if ($request_uri ~* "/wp-admin/|wp-.*.php|/feed/|index.php|sitemap(_index)?.xml") {
set $skip_cache 1;
}
#对登录用户、评论过的用户不展示缓存
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
set $skip_cache 1;
}
...
location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|woff2|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
expires 100d;
}
location ~ \.php$ {
fastcgi_pass unix:/somedir/php/php8.1-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
#新增的缓存规则
fastcgi_cache_bypass $skip_cache;
fastcgi_no_cache $skip_cache;
add_header Last-Modified $date_gmt;
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
fastcgi_cache some_keyword;
fastcgi_cache_valid 200 301 302 1d;
proxy_cache_valid 404 30m;
proxy_cache_valid any 1h;
}
}
nginx重新加载配置文件生效,nginx -s reload
。访问前端页面后,也已在指定的缓存路径下,看到很多nginx自己生成的缓存文件。可以根据自己的需求,调整缓存上面配置文件中的缓存策略,时间等。
版权声明
本站文章、图片、视频等(除转载外),均采用知识共享署名 4.0 国际许可协议(CC BY-NC-SA 4.0),转载请注明出处、非商业性使用、并且以相同协议共享。
© 空空博客,本文链接:https://www.yeetrack.com/?p=1539
谢谢