background image

 

PHP 教程: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 /data0/proxy_temp_dir;

#设置 Web 缓存区名称为 cache_one,内存缓存空间大小为 200MB,1 天没有被访问的内

容自动清除,硬盘缓存空间大小为 30GB。

proxy_cache_path   /data0/proxy_cache_dir   levels=1:2   keys_zone=cache_one:200m   inactive=1d 

max_size=30g;

server

{

listen 80;

server_name www.yourdomain.com 192.168.8.42;

index index.html index.htm;

root /data0/htdocs/www;

location /

{

#如果后端的服务器返回 502、504、执行超时等错误,自动将请求转发到 upstream 负载均衡

池中的另一台服务器,实现故障转移。

proxy_next_upstream http_502 http_504 error timeout invalid_header;

proxy_cache cache_one;