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;