一个WordPress站点,启用了memcached、object-cache,使用nginx作为http server,然后用cloudflare做解析。那么,还有必要做nginx fastcgi_cache吗?如果有必要,需要怎么配置?
如果您的WordPress站点启用了memcached、object-cache,并且使用nginx作为http server,并且使用Cloudflare做解析,那么您可能不需要使用nginx fastcgi_cache。因为memcached和object-cache已经提供了缓存机制,而Cloudflare也提供了CDN缓存,这些都可以极大地提高站点的性能和速度。
如果您仍然想使用nginx fastcgi_cache来提高性能,您需要按照以下步骤进行配置:
1. 首先,在nginx.conf配置文件中启用fastcgi_cache:
fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=WORDPRESS_CACHE:100m inactive=60m; fastcgi_cache_key "$scheme$request_method$host$request_uri"; fastcgi_cache_valid 200 60m; fastcgi_cache_bypass $http_pragma; fastcgi_cache_revalidate $http_cache_control; fastcgi_cache_min_uses 1; fastcgi_cache_use_stale error timeout invalid_header http_500;
这将在/var/cache/nginx目录下创建一个名为WORDPRESS_CACHE的缓存区,并设置缓存的有效期为60分钟。
2. 然后,在您的WordPress站点配置文件中添加以下内容:
set $skip_cache 0; if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_logged_in") { set $skip_cache 1; } location / { try_files $uri $uri/ /index.php$is_args$args; fastcgi_cache_bypass $skip_cache; fastcgi_no_cache $skip_cache; fastcgi_cache WORDPRESS_CACHE; fastcgi_cache_valid 200 60m; include fastcgi_params; fastcgi_pass unix:/run/php/php7.4-fpm.sock; }
这将启用fastcgi_cache,并设置缓存的有效期为60分钟。它还将跳过缓存,如果请求包含评论作者、wordpress_cookie等信息,以确保缓存不会被错误地使用。
请注意,这只是nginx fastcgi_cache的基本配置,您可以根据您的具体需求进行调整。