去评论
dz插件网

用NG自带缓存模块解决动态缓存(非memcached或redis)

xiao9469
2025/04/21 12:42:43
用memcached或redis缓存确实是最理想的选择,苦于帝国CMS默认是没有的,但二开是可以的。比如文韵坊阅读网就采用了memcached或redis或文本缓存。不过这样对核心代码改动很大,灵动标签要改,非标签调用的SQL查询都需要去改。着实麻烦。那小编今天今天分享另外一种,用NG自带缓存模块解决动态缓存。
以宝塔为例,首先找到Nginx配置,在http块里面的 gzip on;之前加上以下代码:
  1.     fastcgi_connect_timeout 180;    fastcgi_send_timeout 180;    fastcgi_read_timeout 180;    fastcgi_buffer_size 128k;    fastcgi_buffers 8 128k;    fastcgi_busy_buffers_size 256k;    fastcgi_temp_file_write_size 512k;    fastcgi_intercept_errors on;
接着在access_log off;下面增加
  1. # 定义 FastCGI 缓存路径和参数fastcgi_cache_path /data/nginx/cache levels=1:2 keys_zone=my_fastcgi_cache:10m max_size=10g inactive=60m;
接着在 server块里面增加以下代码
  1.         location ~ \.php$         {            fastcgi_cache my_fastcgi_cache;            fastcgi_cache_valid 200 302 60m;            fastcgi_cache_valid 404 10m;            fastcgi_cache_use_stale error timeout invalid_header updating;            fastcgi_cache_key "$scheme$request_method$host$request_uri";            fastcgi_pass 127.0.0.1:9000;            fastcgi_index index.php;            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;            include fastcgi_params;        }
注意:/data/nginx/cache 这个得有755权限。不然没有写入读取。

还是没有效果啊,这目录下面压根没有文件啊。不急不急,小编还没有说完呢。找到对应网站-----设置----配置文件,找到#SSL-END这下面增加
  1. fastcgi_cache my_fastcgi_cache;    fastcgi_cache_valid 200 302 60m;    fastcgi_cache_valid 404 10m;    fastcgi_cache_use_stale error timeout invalid_header updating;    fastcgi_cache_key "$scheme$request_method$host$request_uri";    add_header X-Cache-Status $upstream_cache_status;
全部完成。现在就可以享受动态缓存加速的快感了。记得修改之前记得配置备份!!!!!