最近做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处理,到底是做还是不做这个缓存呢,哪位给我个方向啊
看懂了你的意思,
nginx自身的缓存 ,适合于 图片服务器 与 动态服务器不在一个机器上的情况!懂了吗?
比如联通的一台机器 反向代理 电信的主站 ,将图片神马的根据一定的规则存到联通这台机器的硬盘上 ,这样联通的访问图片的速度能快点。不用再到电信区拉取图片,还是就是合适集群了,前面是一台nginx当入口,反向代理tomcat 和 实际文件服务器,这个情况就复杂了,这就是 服务器端的缓存。简单讲就是跟 squid 一样的玩意。
你上面的代码只是 设置一个 http头 ,告诉浏览器 这个文件 多久到期 ,没到期之前 不向服务器再次请求 ,这是 浏览器端 缓存
明白这些 ,你不用 开启 服务器端缓存 ,等有 几台服务器在说。
动静分离
静态文件走NGINX 静态文件包括gif|jpg|jpeg|png|bmp|swf|ico js css
动态走tomcat 动态文件 JSP
NGINX发现是动态的JSP 交给tomcat处理,处理完后返回给NGINX
静态文件就NGINX直接读取
######
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。