Nginx动静分离Demo
Nginx更多内容,参考:Nginx学习笔记
tomcat既可以处理动态资源(servlet、jsp等),又可以处理静态资源(html、css、js、图片等)。
静态资源可以交给nginx处理,减轻tomcat的压力,从而提高效率。
实现动静分离的两种方式:
1.把静态文件独立成单独的域名,放在独立的服务器上(主流)
2.动态文件和静态文件一起发布,通过nginx分开
通过location指定不同的后缀名实现不同的请求转发,通过expires参数设置浏览器缓存过期时间,减少与服务器之间的请求和流量,适合处理不经常变更的资源。
有缓存时,会对比服务器上的文件更新时间有没有变化,没变就不会从服务器抓取,返回状态码304,如果有变化,则从服务器重新下载,返回状态码200。
准备工作:创建存放静态资源目录,如下图
需求:服务器中的静态资源存放在/static/html和/static/image目录下,当浏览器请求静态资源时,nginx直接根据location配置找到对应路径下的静态资源,返回给浏览器,不需要经过tomcat
1.修改nginx.conf文件,重启nginx确保配置生效
[root@centos ~]# vi /usr/local/nginx/conf/nginx.conf [root@centos ~]# /usr/local/nginx/sbin/nginx -s reload
2.浏览器访问
http://192.168.2.111/html/hello.html
注:autoindex on; 列出文件夹中内容,不加这个的话http://192.168.2.111/image/无法访问,可以访问http://192.168.2.111/image/nginx.png
http://192.168.2.111/image/nginx.png
设置缓存过期时间
如下图,设置过期时间1min
首次请求,返回200;存在缓存时,返回304
文件变更后,重新从nginx下载,返回200
继续请求,继续从缓存查找,返回304