如何在 nginx 中缓存静态文件

如何在 nginx 中缓存静态文件,第1张

采用缓存技术可以提高网站公开的响应速度,但在一定程度上也降低了服务器的负载。

相比静态网页与动态网页,它不要求服务器端计算,所以在页面打开的响应速度为比动态页面更快!

虽然我不太懂,但是如果你掩盖了服务器上的静态页面。然后你用浏览器打开过这个网页,最好看空缓存,之前否则你不能马上看到效果

中国希望能帮到你。我感觉很好,帮我加分,谢谢。新年快乐!

首先确定配置文件httpd.conf中确已经加载mod_headers模块。LoadModuleheaders_modulemodules/mod_headers.so我们可以根据文件类型来让浏览器每次都从服务器读取,这里测试用css、js、swf、php、html、htm这几种文件。HeadersetCache-Control"private,no-cache,no-store,proxy-revalidate,no-transform"HeadersetPragma"no-cache"

1.负载均衡配置

2.失败重试配置

在fail_timeout时间内失败了max_fails次请求后,认为上游服务器不可用,就会将服务地址剔除掉,fail_timeout时间后会再次将服务器加入存活列表进行重试。

limit_req_zone指令设置参数

参数说明

limit_req_zone定义在http块中,$binary_remote_addr表示保存客户端IP地址的二进制形式。

Zone定义IP状态及URL访问频率的共享内存区域。zone=keyword标识区域的名字,以及冒号后面跟区域大小。16000个IP地址的状态信息约1MB,例子区域可以存储160000个IP地址。

Rate定义最大请求速率。示例中速率不能超过每秒10个请求。

设置限流

burs排队大小,nodelay不限制单个请求间的时间。具体使用可以查看高并发场景如何使用nginx实现限流-实战篇

不限流白名单

该配置说明 192.168.1.0/24网段的ip访问是不限流的,其它限流。ip后面数字的含义

24表示子网掩码:255.255.255.0

16表示子网掩码:255.255.0.0

8表示子网掩码:255.0.0.0

1.浏览器缓存 静态资源缓存用expire

Response Header中添加了Expires和Cache-Control

所谓的静态资源一般包括一直不变的图像,如网站的logo,js、css静态文件还有可下载的内容,媒体文件

协商缓存(add_header ETag/Last-Modified value)包括html文件,经常替换的图片,经常需要修改的js、css文件和基本不变的api接口

不需要缓存包括用户隐私等敏感数据,用户经常变动的api接口

2.代理层缓存

在本地磁盘创建一个文件目录,根据我们的配置把请求资源以k(key自定义,这边用url的hash值)->v形式缓存到目录里,并根据需求对内容设置缓存时长,比如状态码为200缓存10分钟,其余的缓存1分钟等待。要清理缓存可以借助purger的功能。如果ab测试/个性化需求时应禁用浏览器缓存,否则会因为缓存导致误差。

方式一

方式二 lua+redis动态黑名单(openresty)

配置(/usr/local/openresty/nginx/conf/nginx.conf)

lua脚本编写(ip_blacklist.lua)

1.根据cookie实现灰度发布

根据cooke查询version值,根据version跳转到对应的host,如果没有匹配上的就跳转到默认配置。

2.根据来路ip实现灰度发布


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11734012.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存