在弄清動靜分離以前,咱們要先明白什麼是動,什麼是靜。在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 ;
}
}