请教如何配置 nginx 缓存参数, 20 万+个缓存文件

2018-05-09 21:53:35 +08:00
 zhaoyc2018

网站需要缓存的页面有 20 万多个,请问如何设置?

目前设置: proxy_cache_path "D:/web/test.com/cache" keys_zone=test.com:50m levels=2:2:2 inactive=20m max_size=30g;

上次测试的时候感觉重启 nginx 的时候,nginx 会扫描缓存目录,删除过期缓存。

问题 1: 20 多万的缓存文件,nginx 启动的时候,目前这样设置会不会有问题?

问题 2: 缓存基本不变,不方便生成 html 静态文件,能不能将缓存有效期设置为 1 年?

3453 次点击
所在节点    NGINX
12 条回复
Admstor
2018-05-09 23:10:03 +08:00
很奇葩的问题...你为什么要这样设置...
另外 windows 下 IIS 才是唯一高性能 web 服务器
billlee
2018-05-09 23:30:22 +08:00
你是不是对缓存有什么误解。缓存是让你增加一小部分资源,cover 90% 的请求,不是让你把全部数据一股脑丢进缓存里的。
你这样配置,硬盘还是要在一堆文件里面随机寻址,速度也快不到哪里去的。
zhaoyc2018
2018-05-09 23:42:42 +08:00
@billlee 10 多万详情页(不含列表页)每一段时间会被访问一次,有些时候会出现访问高峰,导致服务器数据库 CPU 占用异常的高。如果服务器就一个这种到没啥问题,问题是有 5 个以上这种网站。
tomczhen
2018-05-09 23:47:43 +08:00
zhaoyc2018
2018-05-09 23:58:23 +08:00
@tomczhen @Admstor 谢谢,暂时还不能调整到 IIS
zhaoyc2018
2018-05-10 00:18:53 +08:00
inactive 值太低了,已改为 7d
flynaj
2018-05-10 01:41:40 +08:00
Windows 你还是用 IIS,Nginx 快是利用 Linux 内核
qsnow6
2018-05-10 08:38:25 +08:00
windows 下用 nginx 本来就坑
ryd994
2018-05-10 09:22:38 +08:00
Windows 下 Nginx 是用 select 模拟的
既没有 epoll 也没有 sendfile
根本就是个废物
要么换 Linux 要么换 IIS
sagaxu
2018-05-10 09:25:12 +08:00
生成静态 html 很方便,nginx cache 的不就是静态 html ?
zhaoyc2018
2018-05-10 12:04:41 +08:00
@sagaxu 是啊,所以来问问有效期最长能多久。
Foolt
2018-06-13 20:35:09 +08:00
要存一年,你要做的是静态化持久存储,不是缓存。

生成 HTML 没什么不方便的,网站程序改不了你也可以用 Nginx 实现,接收请求时 Nginx 先检查 HTML 文件目录有没有 对应的 HTML 文件,有就直接返回 HTML 文件,没有就抓取保存到 HTML 目录并返回。

另外,不要在 Windows 用 Nginx 来生产。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/453566

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX