知识大全 深入Nginx + PHP 缓存详解

Posted

篇首语:得意犹堪夸世俗,诏黄新湿字如鸦。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 深入Nginx + PHP 缓存详解相关的知识,希望对你有一定的参考价值。

深入Nginx + PHP 缓存详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

以下是对Nginx中的PHP缓存进行了详细的分析介绍 需要的朋友可以参考下  

  Nginx缓存 nginx有两种缓存机制:fastcgi_cache和proxy_cache 下面我们来说说这两种缓存机制的区别吧 proxy_cache作用是缓存后端服务器的内容 可能是任何内容 包括静态的和动态的 fastcgi_cache作用是缓存fastcgi生成的内容 很多情况是php生成的动态内容 proxy_cache缓存减少了nginx与后端通信的次数 节省了传输时间和后端带宽 fastcgi_cache缓存减少了nginx与php的通信次数 更减轻了php和数据库的压力 proxy_cache缓存设置

复制代码 代码如下: #注 proxy_temp_path和proxy_cache_path指定的路径必须在同一分区 proxy_temp_path /data /proxy_temp_dir; #设置Web缓存区名称为cache_one 内存缓存空间大小为 MB 天没有被访问的内容自动清除 硬盘缓存空间大小为 GB proxy_cache_path /data /proxy_cache_dir levels= : keys_zone=cache_one: m inactive= d max_size= g; server listen ; server_name yourdomain ; index index index ; root /data /htdocs/; location / #如果后端的服务器返回 执行超时等错误 自动将请求转发到upstream负载均衡池中的另一台服务器 实现故障转移 proxy_next_upstream _ _ error timeout invalid_header; proxy_cache cache_one; #对不同的HTTP状态码设置不同的缓存时间 proxy_cache_valid h; #以域名 URI 参数组合成Web缓存的Key值 Nginx根据Key值哈希 存储缓存内容到二级缓存目录内 proxy_cache_key $host$uri$is_args$args; proxy_set_header Host $host; proxy_set_header X Forwarded For $remote_addr; proxy_pass //backend_server; expires d; #用于清除缓存 假设一个URL为 通过访问就可以清除该URL的缓存 location ~ /purge(/ *) #设置只允许指定的IP或IP段才可以清除URL缓存 allow ; allow / ; deny all; proxy_cache_purge cache_one $host$ $is_args$args; #扩展名以 php jsp cgi结尾的动态应用程序不缓存 location ~ * (php|jsp|cgi)?$ proxy_set_header Host $host; proxy_set_header X Forwarded For $remote_addr; proxy_pass //backend_server; access_log off;

   fastcgi_cache缓存设置

复制代码 代码如下: #定义缓存存放的文件夹 fastcgi_cache_path /tt/cache levels= : keys_zone=NAME: m inactive= d max_size= G; #定义缓存不同的url请求 fastcgi_cache_key "$scheme$request_method$host$uri$arg_filename$arg_x$arg_y"; server listen ; server_name example ; location / root /; index index index index php; location ~ (| php)$ root /; fastcgi_pass : ; fastcgi_cache NAME; fastcgi_cache_valid h; fastcgi_cache_min_uses ; fastcgi_cache_use_stale error timeout invalid_header _ ; fastcgi_index index php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi conf; #设置缓存的过程中发现无法获取cookie 经查需要定义这句话 fastcgi_pass_header Set Cookie; log_format access $remote_addr $remote_user [$time_local] "$request" $status $body_bytes_sent "$_referer" "$_user_agent" $_x_forwarded_for ; access_log /

   总的来说 nginx的proxy_cache和fastcgi_cache的缓存配置差不多 memcache缓存 在讨论memcache缓存之前 我们先了解下mysql的内存缓存吧 mysql的内存缓存可以在my cnf中指定大小 内存表和临时表不同 临时表也是存放内存中 临时表最大的内存需要通过tmp_table_size= M设定 当数据查过临时表的最大值设定时 自动转为磁盘表 此时因需要进行IO操作 性能会大大下降 而内存表不会 内存满了后 会提示数据满错误 例

复制代码 代码如下: create table test ( id int unsigned not null auto_increment primary key state char( ) type char( ) date char( ) )engine=memory default charset=utf cha138/Article/program/PHP/201311/21248

相关参考

知识大全 缓存详解

  我们可以在HTML页面利用metatag和PHP程序中通过header来控制例如  代码如下  header(CacheControl:maxage=mustrevalidate);//小时  h

知识大全 深入extjs与php参数交互的详解

代码如下:<><head><title>HelloWorld</title><metaequiv="ContentType"content="te

知识大全 Nginx负载均衡配置实例详解

Nginx负载均衡配置实例详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!负载均衡是我们大流量网

知识大全 nginx+php上传大文件解决办法

最常用的方法是通过设置nginx的client_max_body_size解决nginx+php上传大文件主要是设置上传文件大小和php脚本运行时长即可用nginx来做webserver的时上传大文件

知识大全 nginx php空白页 fastcgi

  今天安装完nginx后发现页面能正常浏览但是php文件的页面打开后是一篇空白看phpfpm日志看nginx日志都没找到问题  上网搜索了半天终于解决了在这做个记录备忘  网上的一种说法是缺少这么一

知识大全 nginx + php-fpm页面显示空白的问题

  今天下午配置了nginx+php的环境准备放个wordpress玩玩但配置好后页面php的页面一直显示空白起初我以为是权限问题将权限改成后依然不行然后我就开了nginx和php的日志但在日志里根本

知识大全 nginx下禁止目录运行php

  nginx下禁止目录执行php的方法则简单许多允许设定多个目录  不知道是否我对apache那个不了解如果有更好的办法希望大家指出共享学习thx  location~*^/(attachments

知识大全 mac下配置nginx+php+mysql方法说明

本文章来给各位同学介绍mac下配置nginx+php+mysql方法有需要了解的同学可进入参考额本来以为mac下可以用lnmp一键安装包的但是使用后才发现竟然不行后来使用了大家都推荐的homebrew

知识大全 Nginx和PHP-FPM的启动/重启脚本分享

Nginx和PHP-FPM的启动/重启脚本分享  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!服务器

知识大全 Nginx PHP 返回200,但是空白页

NginxPHP返回200,但是空白页  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ngxin