Nginx 浏览器缓存配置指令
# 浏览器缓存
# 当浏览器第一次访问服务器资源的时候,服务器返回到浏览器后,浏览器进行缓存
# 缓存的大概内容有:
# 1.缓存过期的日期和时间
# 2.设置和缓存相关的配置信息
# 3.请求资源最后修改时间
# 4.请求资源的MD5值
# 强缓存:当浏览器再次请求同样资源的时候,会去缓存中查看是否有它的缓存,有的话就查看是否过期,如果没过期就直接从浏览器缓存中拿取数据。这就是浏览器强缓存。
# 弱缓存:当浏览器再次请求同样资源的时候,会去缓存中查看是否有它的缓存,有的话就查看是否过期,如果过期了,浏览器就会拿着“请求资源最后修改时间”和“请求资源的MD5值”去服务器请求资源。这个时候服务器收到请求就会通过“请求资源的MD5值”去判断文件是否有改动,没有改动的话,服务器就会返回304状态码。这就是浏览器弱缓存。资源有改动的话,服务器就像浏览器第一次访问那样返回资源到浏览器。 # expires指令:该指令用来控制页面缓存的过期时间的。也就是可以通过该指令控制HTTP应答中的"Expires"和"Cache-Control"
# 语法一:expires [modified] time;
# 语法二:expires epoch | max | off;
# 默认值:off;
# 位置:http、server、location
# time:可以是负数、指定过期时间,如果是负数,Cache-Control则为no-cache(也就是弱缓存处理发方式),
# 如果为整数或0,Cache-Control的值为max-age=time。也就是多少秒后过期。
# epoch:指定Expires的值为"1 January,1970,00:00:01 GMT"(1970-01-01 00:00:00),Cache-Control的值为no-cache
# max:指定Expires的值为'31 December 2037 23:59:59 GMT'(2037-12-31 23:59:59),Cache-Control的值为10年的秒数。
# off:默认不缓存。
expires 1000; # 缓存1000秒后需要重新获取 # add_header指令是用来添加指定的响应头和响应值。
# 语法:add_header name value [always]
# 位置:http、server、location
add_header Cache-Control no-cache;
# 缓存响应指令:
# Cache-Control: must-revalidate //可缓存但必须再向服务器进行确认
# Cache-Control: no-cache //缓存前必须确认其有效性
# Cache-Control: no-store //不缓存请求或响应的任何内容
# Cache-Control: no-transform //代理不可更改媒体类型
# Cache-Control: public //可向任意方提供响应的缓存
# Cache-Control: private //仅向特定用户返回响应
# Cache-Control: proxy-revalidate //要求中间缓存服务器对缓存的响应有效性再进行确认
# Cache-Control: max-age=<seconds> //响应最大Age值
# Cache-Control: s-maxage=<seconds> //公共缓存服务器响应的罪罚Age值 # Nginx的跨域问题解决
# 浏览器调用服务器的GET,POST……方法的时候会实行了同源策略检查,检查不通过的话浏览器就会报错。不是同源就是跨域。
# 什么是同源策略:你当前页面通过GET,POST方法向服务器发请求的时候,
# 如果你当前页面的协议、域名(IP)、端口和请求接口的服务器有任何的不一样那么就不符合同源策略,
# 就会报缺少Access-Control-Allow-Origin、Access-Control-Allow-Methods的错
# Nginx可以直接通过add_header来配置请求响应头来解决跨域问题
add_header Access-Control-Allow-Origin http://127.0.0.1;
add_header Access-Control-Allow-Origin *; # 允许任何人调用
add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE;
Nginx 浏览器缓存配置指令的更多相关文章
- 2.4 Nginx服务器基础配置指令
2.4.1 nginx.conf文件的结构 2.4.2配置运行Nginx服务器用户(组) 2.4.3配置允许生成的worker process数 2.4.4 配置Nginx进程PID存放路径 2.4. ...
- 【Nginx】缓存配置
1.如何配置基本缓存设置 开启简单的缓存配置,只需要两个指令:proxy_cache_path和proxy_cache.proxy_cache_path配置缓存的存放地址和其他的一些常用配置,prox ...
- Nginx 的 Location 配置指令块
最近一段时间在学习 Nginx ,以前一直对 Nginx 的 Location 配置很头大,最近终于弄出点眉目.总结如下:nginx 配置文件,自下到上分为三种层次分明的结构: | http b ...
- Nginx 浏览器缓存
L:97 一般都是 同时使用 浏览器与Nginx缓存
- Nginx——location常见配置指令,alias、root、proxy_pass
1.[alias] 别名配置,用于访问文件系统,在匹配到location配置的URL路径后,指向[alias]配置的路径.如: location /test/ { alias /home/sftp/i ...
- Nginx - location常见配置指令,alias、root、proxy_pass
1.[alias]——别名配置,用于访问文件系统,在匹配到location配置的URL路径后,指向[alias]配置的路径.如: location /test/ { alias/first/secon ...
- Nginx实践篇(2)- Nginx作为静态资源web服务 - 控制浏览器缓存、防盗链
一.控制浏览器缓存 1. 浏览器缓存简介 浏览器缓存遵循HTTP协议定义的缓存机制(如:Expires;Cache-control等). 当浏览器无缓存时,请求响应流程 当浏览器有缓存时,请求响应流程 ...
- Nginx 配置指令的执行顺序(八)
前面我们详细讨论了 rewrite.access 和 content 这三个最为常见的 Nginx 请求处理阶段,在此过程中,也顺便介绍了运行在这三个阶段的众多 Nginx 模块及其配置指令.同时可以 ...
- Nginx 配置指令的执行顺序(一)
大多数 Nginx 新手都会频繁遇到这样一个困惑,那就是当同一个 location 配置块使用了多个 Nginx 模块的配置指令时,这些指令的执行顺序很可能会跟它们的书写顺序大相径庭.于是许多人选择了 ...
随机推荐
- 992. Sort Array By Parity II - LeetCode
Question 992. Sort Array By Parity II Solution 题目大意:给一个int数组,一半是奇数一半是偶数,分别对偶数数和奇数数排序并要求这个数本身是偶数要放在偶数 ...
- Spring 中 @EnableXXX 注解的套路
前言 在 Spring 框架中有很多实用的功能,不需要写大量的配置代码,只需添加几个注解即可开启. 其中一个重要原因是那些 @EnableXXX 注解,它可以让你通过在配置类加上简单的注解来快速地开启 ...
- SpringCloud基础概念学习笔记(Eureka、Ribbon、Feign、Zuul)
SpringCloud基础概念学习笔记(Eureka.Ribbon.Feign.Zuul) SpringCloud入门 参考: https://springcloud.cc/spring-cloud- ...
- redis高可用、redis集群、redis缓存优化
今日内容概要 redis高可用 redis集群 redis缓存优化 内容详细 1.redis高可用 # 主从复制存在的问题: 1 主从复制,主节点发生故障,需要做故障转移,可以手动转移:让其中一个sl ...
- 8条github使用小技巧
1 简介 作为全球最大的开源及私有软件项目托管社区平台,github可以显著地帮助从事编程相关工作的人员提升自己的技术水平,也是费老师我日常最常浏览学习的技术类网站. github为了使得其使用更加便 ...
- salesforce零基础学习(一百一十五)记一个有趣的bug
本篇参考:https://help.salesforce.com/s/articleView?language=en_US&type=1&id=000319486 page layou ...
- Redis - Redlock算法
Redis - Redlock算法 在Redis的分布式环境中,我们假设有N个Redis master.这些节点完全互相独立,不存在主从复制或者其他集群协调机制.之前我们已经描述了在Redis单实例下 ...
- canvas简易画布
今天学习了canvas,利用它做了一个简易版的画板,校验自己所学的知识,分享出来以供大家学习指教.先上效果图. 主要是使用了canvas的stroke和clearReact来实现画板的绘画和橡皮擦功能 ...
- 分布式机器学习:同步并行SGD算法的实现与复杂度分析(PySpark)
1 分布式机器学习概述 大规模机器学习训练常面临计算量大.训练数据大(单机存不下).模型规模大的问题,对此分布式机器学习是一个很好的解决方案. 1)对于计算量大的问题,分布式多机并行运算可以基本解决. ...
- Linux文本查看工具
文本查看工具 cat 特点: 不能用来看二进制文件 选项: -A: 显示不可见字符 cat支持标准输入: cat > aa.txt ---键盘作为标准输入,输出的结果重定向文件中去了 cat & ...