网站需要缓存的页面有 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 年?
1
Admstor 2018-05-09 23:10:03 +08:00
很奇葩的问题...你为什么要这样设置...
另外 windows 下 IIS 才是唯一高性能 web 服务器 |
2
billlee 2018-05-09 23:30:22 +08:00
你是不是对缓存有什么误解。缓存是让你增加一小部分资源,cover 90% 的请求,不是让你把全部数据一股脑丢进缓存里的。
你这样配置,硬盘还是要在一堆文件里面随机寻址,速度也快不到哪里去的。 |
3
zhaoyc2018 OP @billlee 10 多万详情页(不含列表页)每一段时间会被访问一次,有些时候会出现访问高峰,导致服务器数据库 CPU 占用异常的高。如果服务器就一个这种到没啥问题,问题是有 5 个以上这种网站。
|
4
tomczhen 2018-05-09 23:47:43 +08:00
|
5
zhaoyc2018 OP |
6
zhaoyc2018 OP inactive 值太低了,已改为 7d
|
7
flynaj 2018-05-10 01:41:40 +08:00 via Android
Windows 你还是用 IIS,Nginx 快是利用 Linux 内核
|
8
qsnow6 2018-05-10 08:38:25 +08:00
windows 下用 nginx 本来就坑
|
9
ryd994 2018-05-10 09:22:38 +08:00 via Android
Windows 下 Nginx 是用 select 模拟的
既没有 epoll 也没有 sendfile 根本就是个废物 要么换 Linux 要么换 IIS |
10
sagaxu 2018-05-10 09:25:12 +08:00 via Android
生成静态 html 很方便,nginx cache 的不就是静态 html ?
|
11
zhaoyc2018 OP @sagaxu 是啊,所以来问问有效期最长能多久。
|
12
Foolt 2018-06-13 20:35:09 +08:00
要存一年,你要做的是静态化持久存储,不是缓存。
生成 HTML 没什么不方便的,网站程序改不了你也可以用 Nginx 实现,接收请求时 Nginx 先检查 HTML 文件目录有没有 对应的 HTML 文件,有就直接返回 HTML 文件,没有就抓取保存到 HTML 目录并返回。 另外,不要在 Windows 用 Nginx 来生产。 |