开发者社区> 问答> 正文

nginx缓存静态文件的一点疑惑:报错

最近做nginx+tomcat集群测试,遇到一点疑惑就是我做动静分离,tomcat只解决动态数据请求,至于CSS,js等等由nginx直接读取,也做了配置:

location ~ .*\.(js|css)?$ {
        root         D:/nginx/www/;
         expires      1h;
       }

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$ {
         root        D:/nginx/www/;         
         expires      30d;
       }
执行一切ok!!

后来我看了下nginx的缓存,我也琢磨了下,发现做这缓存也是会产生缓存文件的,到时候接到请求就直接访问缓存数据,这么一来我就困惑了啊,既然缓存也要读文件,而我上面的配置也是过滤请求后读文件,也没有经过后台应服务器tomcat处理,到底是做还是不做这个缓存呢,哪位给我个方向啊

展开
收起
kun坤 2020-06-07 00:30:24 690 0
1 条回答
写回答
取消 提交回答
  • 看懂了你的意思,

    nginx自身的缓存 ,适合于 图片服务器 与 动态服务器不在一个机器上的情况!懂了吗?

    比如联通的一台机器 反向代理 电信的主站 ,将图片神马的根据一定的规则存到联通这台机器的硬盘上 ,这样联通的访问图片的速度能快点。不用再到电信区拉取图片,还是就是合适集群了,前面是一台nginx当入口,反向代理tomcat 和 实际文件服务器,这个情况就复杂了,这就是 服务器端的缓存。简单讲就是跟 squid 一样的玩意。

    你上面的代码只是 设置一个 http头 ,告诉浏览器 这个文件 多久到期 ,没到期之前 不向服务器再次请求 ,这是 浏览器端 缓存

    明白这些 ,你不用 开启 服务器端缓存  ,等有 几台服务器在说。


    ######哦,了然了,我是单台服务器做的测试,确实是你说的这个道理,谢了啊,也谢谢一楼的回答######

    动静分离

    静态文件走NGINX    静态文件包括gif|jpg|jpeg|png|bmp|swf|ico  js css

    动态走tomcat         动态文件 JSP

    NGINX发现是动态的JSP 交给tomcat处理,处理完后返回给NGINX

    静态文件就NGINX直接读取

     

    ######
    2020-06-07 00:30:41
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
基于英特尔 SSD 的虚拟机缓存解决SSD 立即下载
用户态高速块缓存方案 立即下载
高性能Web架构之缓存体系 立即下载