V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
zhaoyc2018
V2EX  ›  NGINX

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

  •  
  •   zhaoyc2018 · 2018-05-09 21:53:35 +08:00 · 3653 次点击
    这是一个创建于 2390 天前的主题,其中的信息可能已经有所发展或是发生改变。

    网站需要缓存的页面有 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 条附言  ·  2018-05-09 23:57:01 +08:00
    这个是其中一个站的统计 http://dh.510122.com/p.jpg

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

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

    另外,不要在 Windows 用 Nginx 来生产。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1187 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:32 · PVG 02:32 · LAX 10:32 · JFK 13:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.