Nginx 教程

Nginx 教程 Nginx 简介 Nginx 源码架构分析 Nginx 编译安装 Nginx(Tengine) 编译安装 Nginx(OpenResty) 编译安装 Nginx 配置简述 Nginx Docker 容器化配置

Nginx 核心配置指令

Nginx 核心配置指令 Nginx 配置文件 Nginx 进程配置指令 Nginx 端口监听:listen Nginx 主机名server_name Nginx 处理HTTP请求 Nginx 路由匹配规则:localhost Nginx 重定向配置:rewrite Nginx 根目录配置:root Nginx 访问路径别名:alias Nginx 文件判断:try_files Nginx 零复制:sendfile Nginx 日志记录配置

Nginx HTTP模块

Nginx 镜像模块 Nginx 请求头控制模块 Nginx IP访问控制模块 Nginx 用户cookie模块 Nginx 并发连接数限制模块 Nginx 首页处理模块 Nginx 请求频率限制模块 Nginx 页面缓存时间配置 Nginx gzip压缩及相关配置

Nginx Web服务

Nginx 静态资源服务器搭建 Nginx 文件下载服务器搭建 Nginx 伪动态SSI服务器 Nginx HTTPS服务器搭建 Nginx FastCGI模块配置简述 Nginx PHP服务器环境搭建 Nginx 基于FastCGI负载均衡 Nginx CGI网关接口 Nginx uWSGI模块配置 Nginx Python项目部署 Nginx 伪流媒体服务器搭建 Nginx HTTP2模块配置简述 Nginx WebDAV模块配置简述

Nginx 代理服务器

Nginx HTTP代理服务器 Nginx stream模块简述 Nginx TCP/UDP代理简述 Nginx 基于SSL的TCP代理服务器 Nginx gRPC代理服务器

Nginx 缓存

Nginx Web缓存配置 Nginx 代理缓存配置 Nginx Memcached 缓存模块 Nginx 反向代理缓存服务器配置 Nginx 客户端缓存控制

Nginx 负载均衡

Nginx 负载均衡模块 Nginx 负载均衡策略 Nginx 长连接负载均衡 Nginx upstream容错机制 Nginx upstream动态更新 Nginx TCP/UDP负载均衡

Nginx 日志管理监控

Nginx 日志分析简述 Nginx 访问日志配置 Nginx 错误日志配置 Nginx 日志归档配置 Nginx 日志分析工具 ELK Nginx 监控工具 Prometheus

Nginx 集群

LVS(Linux虚拟服务器)简介 Keepalived 配置简述 Nginx 集群负载搭建 Nginx 集群配置管理规划 Nginx 配置归档工具GitLab Nginx 配置修改工具Ansible Jenkins 安装与配置简述 Nginx 集群配置管理实例

Nginx 在 k8s 的应用

Kubernetes(k8s)系统简述 Kubernetes(k8s)集群部署 Kubernetes(k8s)网络通信 Nginx Ingress 简介 Nginx Ingress 安装部署 Nginx Ingress 配置映射 Nginx Ingress 注解


Nginx expires:页面缓存时间配置

Nginx 缓存的设置可以提高网站性能,对于网站的图片,尤其是新闻网站,图片一旦发布,改动的可能是非常小的,为了减小对服务器请求的压力,提高用户浏览速度,我们可以通过设置 Nginx 中的 expires 指令,让用户访问一次后,将图片缓存在用户的浏览器中。

需要注意的是,这种缓存方式只能在用户不对浏览器强制刷新的情况下生效,如果用户通过 url 来进行访问,是可以访问到缓存的。

Nginx 中的 expires 指令的介绍如下表所示:

名称 缓存时间指令
指令 expires
作用域 http、server、location、if in location
默认值 off
指令值可选项 时间或 epoch 或 max 或 off
指令说明 当响应状态码为 200、201、204、206、301、302、303、304、307 或 308 时,对响应头中的属性字段"Expires"和"Cache-Control"进行添加或编辑操作

当指令值为时间时,既可以是正值也可以是负值。Expires 的值为当前时间与指令值的时间之和。当指令值的时间为正或 0 时,Cache-Control 的值为指令值的时间。当指令值的时间为负时,Cache-Control 的值为 no-cache。

当指令值为时间时,可用前缀 @ 指定一个绝对时间,表示在当天的指定时间失效。

当指令值为 epoch 时,Expires 的值为 Thu,01 Jan 1970 00:00:01 GMT,Cache-Control 的值为 no-cache。

当指令值为 max 时,Expires 的值为 Thu,31 Dec 2037 23:55:55 GMT,Cache-Control 的值为 10 年。

当指令值为 off 时,不对响应头中的属性字段 Expires 和 Cache-Control 进行任何操作。

配置样例如下:

map $content_type $expires {          # 根据$content_type的值,对变量$expires进行赋值
    default         off;                            # 默认不修改Expires和Cache-Control的值
    application/pdf 42d;                     # application/pdf类型为42天
    ~image/         max;                       # 图片类型为max
}

server {
    expires    24h;                             # 设置Expires的值为当前时间之后的24小时,
                                                   # Cache-Control的值为24小时
    expires    modified +24h;           # 编辑Expires的值增加24小时,Cache-Control的值增
                                                       # 加24小时
    expires    @15h;                         # 设置Expires的值为当前日的15点,Cache-Control的值
                                                       # 为当前时间到当前日15点的时间差
    expires    $expires;                     # 根据变量$expires的内容设置缓存时间
    add_header Cache-Control no-cache; 
    add_trailer  X-Always $host always;
}