1. 所谓动静分离指的是将动态请求的资源与静态请求的资源分开。在web应用中,像css、js、html这样的文件就是静态文件。而jsp文件则属于是动态文件。tomcat的主要作用是处理动态文件,它对于静态资源处理的性能却不是很高。这时候我们可以把静态资源交给nginx来处理以提高网站的访问性能。
  2. 打开nginx的配置文件,我之前已经把server节点的部分单独放在了conf目录下的vhosts子目录下。文件命名为vhosts.conf。如下图所示:

    vhosts.conf的内容如下所示:
  3. 修改vhosts.conf文件,增加如下内容:
            #static file
            location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|js|css)$ {
                root /usr/local/nginx/html;
                #cache
                expires 3d;
            }

    上面的 root /usr/local/nginx/html表示存储静态资源的目录,所有的静态资源全部放在那里。
    html|htm|gif|jpg|jpeg|bmp|png|ico|js|css则表示被定义的静态资源
    expires 3d表示定义用户浏览器缓存的时间为3天,如果静态页面不常更新,可以设置更长。这样可以节省带宽和缓解服务器端压力。
  4. 在主配置文件当中对vhosts.conf进行引用,如下所示:
  5. 保存退出后执行/usr/local/nginx/sbin/nginx -t查看配置是否成功,如下所示:

    出现test is successful表示配置成功
  6. 打开浏览器输入ip地址,默认访问的是动态资源,如下图:

    在此仍然使用了负载均衡,当再次刷新页面时显示的效果如下所示:


    前面这两个jsp页面被tomcat处理。
  7. 当在ip地址的末尾增加/index.html时显示如下内容:

    这个静态页面被nginx来处理,此时表示nginx的动静分离配置成功。按下f12可以查看页面的请求情况,点击network选项卡可以卡可以看到该静态页面被浏览器缓存3天,单位以秒计算,如下图所示:

    Cache-Control表示缓存的时间,单位为秒;Data表示当前访问的时间;Expires表示缓存到期的时间;
  8. 小常识:
    a、在浏览器当中按下f5表示刷新本地缓存,而按下ctrl f5可以把internet临时文件夹的文件删除在重新从服务器下载,也
          就是彻底刷新页面。
    b、http状态码304表示我们再次向服务器发送请求的时候,如果服务器端的静态资源没有被更新则返回的是304状态。在
          浏览器当中如果按下f5服务器静态页面没更新的话返回的是304,而按下ctrl+f5则会彻底刷新页面,返回的是200。