【摘自张宴的"实战:Nginx"】使用nginx的fastcgi_cache缓存php输出的内容

fastcgi_cache虽然可以缓存生成的php输出的文件,但是有个弊端,在缓存的失效时间之内,你继续访问这个地址,输出的内容没有发生变化,即使数据库新增了数据或者删除了数据,所以不适合来做即时的数据查询;

#user nobody;
worker_processes 1;

error_log logs/static_source.error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;

events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;

log_format main ‘$remote_addr - $remote_user [$time_local] "$request" ‘
‘$status $body_bytes_sent "$http_referer" ‘
‘"$http_user_agent" "$http_x_forwarded_for"‘;

access_log logs/static_source.access.log main;

sendfile on;
#tcp_nopush on;

#keepalive_timeout 0;
keepalive_timeout 65;

gzip on;

#*************************************************************************
#注 fastcgi_temp_path, fastcgi_cache_path指定的路径必须在一个分区
fastcgi_temp_path /data/fastcgi_temp_path;

#设置web缓存区的名字为cache_one ,内存缓存空间大小为200M, 自动清除超过1天美意被访问的缓存数据,磁盘空间大小为30GB
fastcgi_cache_path /data/fastcgi_cache_path levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g;

root /data/www/static;

server {
listen 80;
server_name www.test.com;

charset utf-8;

access_log logs/test.access.log main;

#location /
#{
# proxy_set_header Host $host;
# proxy_set_header X-Forwarded-For $remote_addr;
# proxy_pass http://my_server_pool;
#
#}

#扩展名以.php、.jsp、.cgi结尾的动态应用程序不缓存
location ~ .*\.(php)?$
{
fastcgi_cache cache_one;

#对不同状态码缓存设置不同的缓存时间
fastcgi_cache_valid 200 10m
fastcgi_cache_valid 301 302 1h;
fastcgi_cache_valid any 1m;

fastcgi_cache_key 127.0.0.1:9000$request_uri;

#fastcgi服务器
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;

}

}
}

访问http://192.168.66.138/a.php会在目录/data/fastcgi_cache_path生成a.php输出的缓存的内容,php输出的内容为
testhelojack (10) tome (88)

生成的缓存的文件b7629eb874ec26fe28dd33e6183f9b5c(nginx根据配置的Key,md5生成的文件名)内容为:

1 ^C^@^@^@D^LHWÿÿÿÿ4þGWÿkó3^@^@<9b>^@Ø^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^ ^@^@^@^@^@
2 KEY: 127.0.0.1:9000/a.php
3 ^A^F^@^A^@Q^G^@X-Powered-By: PHP/5.5.30^M
4 Content-type: text/html^M
5 ^M
6 testhelojack (10)
7 tome (88)

时间: 2024-08-07 04:24:13

【摘自张宴的"实战:Nginx"】使用nginx的fastcgi_cache缓存php输出的内容的相关文章

【摘自张宴的&quot;实战:Nginx&quot;】使用nginx的proxy_cache模块替代squid

#user nobody;worker_processes 1; error_log logs/static_source.error.log;#error_log logs/error.log notice;#error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024;} http { include mime.types; default_type application/octet

实战Nginx:Nginx服务器的安装与配置

----------------------------------------------------------------------------------------------- Nginx下载地址:http://www.nginx.net [email protected] 黑眼诗人 <www.chenwei.ws>---------------------- Nginx在Window下的安装 => '开始' - '运行' - 'cmd',执行如下DOS命令 d: cd d

大型分布式项目项目实战Springmvc+Spring+Mybatis+Maven+CMS+Redis+Solr+Linux+Nginx+单点登录、分布式缓存、负载均衡视频课程

* { font-family: "Microsoft YaHei" !important } h1 { color: #FF0 } 15套java架构师.集群.高可用.高可扩 展.高性能.高并发.性能优化.Spring boot.Redis.ActiveMQ.Nginx.Mycat.Netty.Jvm大型分布 式项目实战视频教程 视频课程包含: 高级Java架构师包含:Spring boot.Spring  cloud.Dubbo.Redis.ActiveMQ.Nginx.Mycat

ansible playbook实战——下发部署nginx以及更新、回滚

之前介绍了 ansible 的安装配置及实例:http://msiyuetian.blog.51cto.com/8637744/1748143 以及 ansible 的 playbook 详解:http://msiyuetian.blog.51cto.com/8637744/1752326 下面这篇文章主要是通过 ansible 下发部署安装 nginx 以及后期发布更新配置,还有回滚机制来认识 ansible 的 playbook. 思路:先在一台机器上编译安装好 nginx.打包,然后再用

(七)saltstack项目实战_安装nginx

创建nginx所需目录 [[email protected] ~]# cd /data/etc/salt/ [[email protected] salt]# mkdir -p nginx/files [[email protected] salt]# cd nginx/files/ [[email protected] files]# wget http://nginx.org/download/nginx-1.11.3.tar.gz [[email protected] salt]# tre

第九天 1-8 实战:安装nginx服务器

简介:使用nginx源码包,安装nginx服务器,并对其进行配置后,测试其成果.模仿百度主页! 第一步:检查依赖关系[[email protected] ~]# rpm -q zlib-devel pcre-develpackage zlib-devel is not installedpackage pcre-devel is not installed[[email protected] ~]# ls /mnt/Packages/*zlib*/mnt/Packages/zlib-1.2.7-

架构师-盛大许式伟VS金山张宴

许式伟:作为系统架构师,您一般会从哪些方面来保证网站的高可用性(降低故障时间)? 张宴:很多因素都会导致网站发生故障,从而影响网站的高可用性,比如服务器硬件故障.软件系统故障.IDC机房故障.程序上线前测试未发现的Bug.遭受分布式攻击.突发访问人数剧增等. 一套良好的网站系统架构,应该尽可能地避免只有一台服务器.一个数据库.一套软件节点等单点故障的存在.单点故障一旦发生,将直接导致网站服务不可 用,恢复正常服务所需的时间也比较长,甚至还可能无法恢复.负载均衡集群.双节点热备.分布式处理等都可以

亿级数据的高并发通用搜索引擎架构设计(转-张宴)

[文章作者:张宴 本文版本:v1.0 最后修改:2008.12.09 转载请注明原文链接:http://blog.zyan.cc/post/385/] 曾经在七月,写过一篇文章──<基于Sphinx+MySQL的千万级数据全文检索(搜索引擎)架构设计>, 前公司的分类信息搜索基于此架构,效果明显,甚至将很大一部分带Where条件的MySQL SQL查询,都改用了Sphinx+MySQL搜索.但是,这套架构仍存在局限:一是MySQL本身的并发能力有限,在200-300个并发连接下,查询 和更新就

Nginx专题: upstream模块和缓存的简单使用

Nginx专题: upstream模块和缓存的简单使用 前言: 本文接着上篇Nginx专题: 从编译安装到URL重写来介绍Nginx的负载均衡模块使用方法, 本文的实验没有考虑大多数情况, 例如两个web服务器之间的数据同步等, 主要写Nginx如何作为负载均衡器使用并且缓存 实验拓扑 实验环境 主机 IP地址 功用 lb.anyisalin.com 172.16.1.2 负载均衡并缓存静态资源 web1.anyisalin.com 172.16.1.3 提供web服务 web2.anyisal