一步一步配置nginx实现动静分离(图文)
分类:
文章
•
2024-09-30 12:40:46
- 所谓动静分离指的是将动态请求的资源与静态请求的资源分开。在web应用中,像css、js、html这样的文件就是静态文件。而jsp文件则属于是动态文件。tomcat的主要作用是处理动态文件,它对于静态资源处理的性能却不是很高。这时候我们可以把静态资源交给nginx来处理以提高网站的访问性能。
- 打开nginx的配置文件,我之前已经把server节点的部分单独放在了conf目录下的vhosts子目录下。文件命名为vhosts.conf。如下图所示:
vhosts.conf的内容如下所示:
- 修改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天,如果静态页面不常更新,可以设置更长。这样可以节省带宽和缓解服务器端压力。
- 在主配置文件当中对vhosts.conf进行引用,如下所示:
- 保存退出后执行/usr/local/nginx/sbin/nginx -t查看配置是否成功,如下所示:
出现test is successful表示配置成功
- 打开浏览器输入ip地址,默认访问的是动态资源,如下图:
在此仍然使用了负载均衡,当再次刷新页面时显示的效果如下所示:
前面这两个jsp页面被tomcat处理。
- 当在ip地址的末尾增加/index.html时显示如下内容:
这个静态页面被nginx来处理,此时表示nginx的动静分离配置成功。按下f12可以查看页面的请求情况,点击network选项卡可以卡可以看到该静态页面被浏览器缓存3天,单位以秒计算,如下图所示:
Cache-Control表示缓存的时间,单位为秒;Data表示当前访问的时间;Expires表示缓存到期的时间;
- 小常识:
a、在浏览器当中按下f5表示刷新本地缓存,而按下ctrl f5可以把internet临时文件夹的文件删除在重新从服务器下载,也
就是彻底刷新页面。
b、http状态码304表示我们再次向服务器发送请求的时候,如果服务器端的静态资源没有被更新则返回的是304状态。在
浏览器当中如果按下f5服务器静态页面没更新的话返回的是304,而按下ctrl+f5则会彻底刷新页面,返回的是200。