Toggle navigation
首页
技术
骑行
羽毛球
资讯
联络我
登录
Nginx配置fastcgi_cache
2017-11-09
Nginx
Performance
> Nginx除了可以使用代理层缓存之外,还可以使用FastCGI缓存,并且支持ngx_cache_purge模块来清理缓存 # http模块配置 ``` fastcgi_cache_path /data/nginx/cache/factcgi_cache levels=1:2 keys_zone=php:512m inactive=1d max_size=1g use_temp_path=off; ``` fastcgi_cache_path 参数说明: * levels:目录层级,1:2表示2层目录结构存储,比如:/data/nginx/cache/factcgi_cache/c/29/b7f54b2df7773722d382f4809d65029c * keys_zone:缓存key的共享内存区,1m可以存储8千个key * inactive:缓存有效时间,如果经过该时间还没有被访问到,则删除该缓存 * max_size:缓存数据最大大小 * use_temp_path:是否将数据先写入临时文件(proxy_temp_path),再写入缓存目录 # fastcgi_cache配置 ``` location ~ \.php$ { # php try_files $uri /index.php =404; fastcgi_pass php-upstream; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; # cache fastcgi_cache php; fastcgi_cache_valid 200 1h; fastcgi_cache_key "$scheme$request_method$host$request_uri"; fastcgi_ignore_headers Cache-Control Expires Set-Cookie; add_header cache-status $upstream_cache_status; if ($request_uri ~* "admin/") { set $skip_cache 1; } fastcgi_cache_bypass $skip_cache; # add_header remote_addr $remote_addr; # add_header cache-key "$scheme$request_method$host$request_uri"; } location ~ /purge(/.*) { allow 192.168.0.0/24; deny all; fastcgi_cache_purge php "$scheme$request_method$host$1"; } ``` 参数说明: * fastcgi_cache:指定使用哪个共享内存区缓存数据 * fastcgi_cache_key:缓存文件key,默认为完整的URL * fastcgi_cache_valid:为不同的响应状态码设定缓存,如果只设定时间,则 200, 301, 302 都将同时被缓存 * fastcgi_ignore_headers :禁止代理服务器处理请求头,避免被Expires Cache-Control等参数影响缓存有效性。 * add_header cache-status $upstream_cache_status : 在响应头添加缓存命中状态,方便调试。 * fastcgi_cache_bypass:不为"0"的字符串就表示不缓存该内容。示例中,对于admin页面的内容,不做缓存。 对于缓存清理模块的allow ip用的是子网掩码的表示方式,24表示32位IP地址的前24位都为1,所以192.168.0.0/24的IP地址范围为: 192.168.0.0~192.168.0.255 # 参考: * [ngx_http_fastcgi_module](http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html)
×
本文为博主原创,如需转载,请注明出处:
http://www.supperxin.com
返回博客列表