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;