网站需要缓存的页面有 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 a href="/member/zhaoyc2018" class="dark">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 来生产。 |