在弄清动静分离以前,咱们要先明白什么是动,什么是静。在Web开发中,一般来讲,动态资源其实就是指那些后台资源,而静态资源就是指HTML,JavaScript,CSS,img等文件。html
通常来讲,都须要将动态资源和静态资源分开,将静态资源部署在Nginx上,当一个请求来的时候,若是是静态资源的请求,就直接到nginx配置的静态资源目录下面获取资源,若是是动态资源的请求,nginx利用反向代理的原理,把请求转发给后台应用去处理,从而实现动静分离。nginx
在使用先后端分离以后,能够很大程度的提高静态资源的访问速度,同时在开过程当中也可让先后端开发并行能够有效的提升开发时间,也能够有些的减小联调时间 。后端
因此动静分离是将网站静态资源(HTML,JavaScript,CSS,img等文件)与后台应用分开部署,提升用户访问静态代码的速度,下降对后台应用访问。
动静分离的一种经常使用作法:将静态资源部署在nginx上,后台项目部署到应用服务器上,根据必定规则静态资源的请求调度到nginx服务器,达到动静分离的目标。
tomcat
server {服务器
listen 80;前后端分离
server_name hahashen.com;jsp
access_log /data/nginx/logs/hahashen.com-access.log main;ide
error_log /data/nginx/logs/hahashen.com-error.log;网站
#动态访问请求转给tomcat应用处理spa
location ~ .(jsp|page|do)?$ { #以这些文件结尾的
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://tomcat地址;
}
#设定访问静态文件直接读取不通过tomcat
location ~ .*.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$ {
expires 30d;
root /data/hahashen/html ;
}
}