使用了Cloudflare,还有必要使用fastcgi_cache吗?

一个WordPress站点,启用了memcached、object-cache,使用nginx作为http server,然后用cloudflare做解析。那么,还有必要做nginx fastcgi_cache吗?如果有必要,需要怎么配置?

如果您的WordPress站点启用了memcachedobject-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的基本配置,您可以根据您的具体需求进行调整。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注