如何配置Nginx的FastCGI缓存有效时间?

配置Nginx的FastCGI缓存有效期时间需要进行以下几个步骤:

  1. 在Nginx配置文件中启用FastCGI缓存模块

在Nginx配置文件的http模块中添加如下代码

http {
    ...
    fastcgi_cache_path /path/to/cache levels=1:2 keys_zone=my_cache_zone:10m inactive=60m;
    ...
}

这段代码中定义了FastCGI缓存的存储位置、缓存目录结构、缓存空间的名字以及缓存的过期时间。

  1. 在server模块中启用FastCGI缓存

在server模块中添加如下代码

location ~ \.php$ {
    fastcgi_cache my_cache_zone;
    fastcgi_cache_valid 200 60m;
    fastcgi_cache_bypass $http_pragma;
    fastcgi_cache_revalidate on;
    include fastcgi_params;
    ...
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}

这段代码中使用正则表达式匹配所有的PHP请求。然后使用fastcgi_cache指令启用FastCGI缓存。使用fastcgi_cache_valid指令设置缓存比对响应状态码和过期时间,这里设置为200状态码60分钟后过期。使用fastcgi_cache_bypass指令用于检查是否会跳过缓存。fastcgi_cache_revalidate指令用于刷新缓存。最后添加include fastcgi_params,将所有FastCGI参数包含到当前请求。使用fastcgi_pass指令将请求转发给PHP-FPM处理。

  1. 检查FastCGI缓存是否生效

在server模块中添加类似如下代码,启用Nginx的access日志记录功能:

server {
    access_log /var/log/nginx/access.log;
    ...
}

接下来访问PHP网页,检查access日志记录中是否有缓存Hit的记录。如果有,则表示FastCGI缓存已经生效,如果没有则表示FastCGI缓存没有生效。

示例:

例如我们希望对于php请求启用FastCGI缓存并设置缓存有效期为半小时,则需要进行如下配置:

http {
    fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache_zone:10m inactive=60m;
 }

server {
    location ~ \.php$ {
        fastcgi_cache my_cache_zone;
        fastcgi_cache_valid 200 30m;
        include fastcgi_params;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    }
}

其中fastcgi_cache_valid 200 30m;表示缓存的有效期为30分钟。

又例如,我们希望对WP前端页进行FastCGI缓存的话,可以按如下代码进行配置:

http {
    fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache_zone:10m inactive=60m;
 }

server {
    location / {
        try_files $uri $uri/ /index.php?$query_string;

        # Enable cache for WP front-end pages
        fastcgi_cache my_cache_zone;
        fastcgi_cache_valid 200 30m;
    }

    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;

        # Bypass cache for backend requests
        fastcgi_cache_bypass $http_pragma;
        fastcgi_cache_revalidate on;
        fastcgi_cache_valid 200 1m;

        # Add cache headers to backend responses
        add_header X-Cache $upstream_cache_status;
        add_header Cache-Control "public, max-age=$cache_max_age";
    }
}

其中location /设置了对网站首页和其他页面的缓存,fastcgi_cache_valid 200 30m;表示缓存的有效期为30分钟。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何配置Nginx的FastCGI缓存有效时间? - Python技术站

(0)
上一篇 2023年4月19日
下一篇 2023年4月19日

相关文章

  • nginx搭建图片服务器的过程详解(root和alias的区别)

    Nginx搭建图片服务器的过程详解 1. 什么是Nginx? Nginx是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP服务器。 Nginx的目的是为了解决C10k问题。 2. Nginx搭建图片服务器 2.1 安装Nginx 使用apt-get在Ubuntu上安装 sudo apt-get install nginx 安装完…

    Nginx 2023年5月16日
    00
  • 浅谈Nginx 中的两种限流方式

    浅谈Nginx 中的两种限流方式 在高并发的场景下,为了保证系统的稳定性和可用性,我们需要对请求进行限流处理。Nginx 作为一款高性能的反向代理和 Web 服务器,也提供了多种限流的方式。本文主要介绍 Nginx 中的两种限流方式:ngx_http_limit_req_module 和 ngx_http_limit_conn_module。 ngx_htt…

    Nginx 2023年5月16日
    00
  • nginx配置https详细过程

    准备工作 需要先准备好你域名对应的证书和私钥,也就是cert证书和key。我部署是很常见的ng+tomcat双层配置,ng作为前端的代理,所以tomcat就不需要自己处理https,ng作为代理以http协议将请求转给tomcat处理,而后再把tomcat的输出通过SSL加密发给用户。 这种代理模式下,带来的问题就是tomcat会认为所有请求都是ng发出的,…

    2023年4月10日
    00
  • nginx 多域名指向多个根目录配置,设置自定义请求头 proxy_set_header,ssl 证书安装配置

    1.nginx.conf 配置文件引入子配置文件 include vhost-server/*.conf;  关键在 server_name  不同域名执行不同的根 user root; #user nobody; worker_processes 1; error_log logs/error.log; #error_log logs/error.log …

    Nginx 2023年4月12日
    00
  • mac系统下用nginx服务器部署页面

    1.安装nginx(需要先安装Homebrew)。使用命令 brew install nginx 安装nginx。   2.用命令 open /usr/local/Cellar/nginx 用访达打开安装路径。   3.打开bin文件夹,双击nginx文件,启动nginx,然后访问http://localhost:8080/。 若出现如图界面,则启动ngin…

    2023年4月10日
    00
  • Nginx实现https和跳转功能

    一、Nginx-HTTPS #安装nginx时,需要将 –with-http_ssl_module模块开启1.首先生成密钥和证书文件 #创建证书存放目录 mkdir /usr/local/nginx/conf/ssl/ #在刚才创建的目录中建立服务器私钥,RSA密钥 openssl genrsa -out ccku.key 1024 #生成csr文件;依次…

    Nginx 2023年4月13日
    00
  • Nginx 实现 HTTPS(基于 Let’s Encrypt 的免费证书)

    SSL / TLS加密会为您的用户带来更高的搜索排名和更好的安全性。 Let’s Encrypt 是一个认证机构(CA)。它可以提供免费证书,并且已经被大多数浏览器所信任。另外,通过工具 Certbot 可以让我们完全自动化证书的安装和更新。 安装证书的前提条件: 安装服务器(这里用 NGINX)。注册域名。创建一个DNS记录,将域名和服务器的 IP 地址相…

    Nginx 2023年4月13日
    00
  • Nginx map模块

    L77       Syntax: map string $variable { … } Default: — Context: http       map 指令  curl -H ‘aaaa:4444444’ -H ‘Host:map.taohui.org.cn’ http://192.168.0.51:10001   map $http_host …

    Nginx 2023年4月13日
    00
合作推广
合作推广
分享本页
返回顶部