# 靜態資源: 當使用者多次造訪這個資源,資源的原始碼永遠不會改變的資源。
動態資源:當使用者多次存取這個資源,資源的原始程式碼可能會發送變更。
#動靜分離是讓動態網站裡的動態網頁依照某一規則把不變的資源和常變的資源區分開來,動靜資源做好了拆分以後,我們就可以根據靜態資源的特徵將其做緩存操作,這就是網站靜態化處理的核心思路
動靜分離簡單的概括是:動態文件與靜態文件的分離。
偽靜態:網站如果想被搜尋引擎搜素到,動態頁面靜態技術freemarker等模版引擎技術
在我們的軟體開發中,有些請求是需要後台處理的(如:.jsp,.do等等),有些請求是不需要經過後台處理的(如:css、html、jpg、js等等文件),這些不需要經過背景處理的文件稱為靜態文件,否則動態文件。因此我們後台處理忽略靜態文件。這會有人又說那我後台忽略靜態檔不就完了嗎。當然這是可以的,但是這樣後台的請求次數就明顯增加了。在我們對資源的反應速度有要求的時候,我們應該使用這種動靜分離的策略來解決。
動靜分離將網站靜態資源(HTML,JavaScript,CSS,img等檔案)與後台應用程式分開部署,提高使用者存取靜態程式碼的速度,降低對後台應用程式存取。這裡我們將靜態資源放到nginx中,動態資源轉送到tomcat伺服器中。
因此,動態資源轉送到tomcat伺服器我們就使用到了前面講到的反向代理了。
#動靜分離的原理很簡單,透過location對請求url進行比對即可,在/Users/Hao/Desktop/Test(任意目錄)下建立 /static/imgs 設定如下:
###静态资源访问 server { listen 80; server_name static.jb51.com; location /static/imgs { root /Users/Hao/Desktop/Test; index index.html index.htm; } } ###动态资源访问 server { listen 80; server_name www.jb51.com; location / { proxy_pass http://127.0.0.1:8080; index index.html index.htm; } }
別一種按存取資源配置
server { listen 80; server_name jb51.net; access_log /data/nginx/logs/jb51.net-access.log main; error_log /data/nginx/logs/jb51.net-error.log; #动态访问请求转给tomcat应用处理 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/web/html ; } }
SOA面向伺服器開發,後台和前端都採用呼叫介面方式。將一個專案拆分成一個控制
Web(前端)和介面(後端),最終使用rpc遠端呼叫技術。視圖層與業務邏輯層拆分,中間採用
RPC遠端呼叫技術
url後面會加上一個時間戳?他的作用:控制快取
以上是Nginx動靜分離配置怎麼實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!