XenForo启用Nginx fastcgi_cache

Posted by

Nginx包含一个FastCGI模块,该模块具有用于缓存动态内容的指令,这些指令由PHP后端提供。进行设置可以消除对其他页面缓存解决方案的需求,例如反向代理(想想Varnish)或特定于应用程序的插件。还可以根据请求方法,URL,cookie或任何其他服务器变量将内容排除在缓存之外。

1、为Xenforo安装插件LiteSpeedCache(安装NGINX后不需要安装LiteSpeed)

点击下载 LiteSpeedCache-2.2.2 (下载102 )

2、编辑/etc/nginx/nginx.conf文件,在 http区块中添加(默认xenforo cookie的xf_前缀没有更改)

### Start FastCGI Cache
map $http_cookie $nocachecookie {
    default                    0;
    ~xf_user                   1;
    ~xf_session_admin          1;
    ~xf_lscxf_logged_in        1;
}
map $request_uri $nocacheuri {
    default                 0;
    ~^/register             1;
    ~^/login                1;
    ~^/lost-password        1;
}
fastcgi_cache_path /var/run/nginx_fastcgi_cache levels=1:2 keys_zone=fastcgicache:256m inactive=30m;
### End FastCGI Cache

3、在虚拟主机站点的CONF文件中的php区块中,“include fastcgi_params;”后面添加

### fastcgi_cache start
fastcgi_cache_methods    GET;
fastcgi_cache_key        $host$request_uri;
fastcgi_cache_lock       on;
fastcgi_cache_use_stale  error timeout invalid_header updating http_500 http_503;
fastcgi_ignore_headers   Cache-Control Expires Set-Cookie;
fastcgi_cache            fastcgicache;
fastcgi_no_cache         $nocachecookie $nocacheuri;
fastcgi_cache_bypass     $nocachecookie $nocacheuri;
fastcgi_cache_valid      200 301 302 303 404 5m;
add_header X-Cache-Status $upstream_cache_status;
### fastcgi_cache end

重新nginx与php-fpm即可

使用Nginx fastcgi_cache,省略了安装php缓存插件等步骤,也不需单独再设置config.php文件

Leave a Reply

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