動靜分離實例


1.關於nginx動靜分離
Nginx 動靜分離簡單來說就是把動態跟靜態請求分開;
不能理解成只是單純的把動態頁面和靜態頁面物理分離;
嚴格意義上說應該是動態請求跟靜態請求分開;
可以理解成使用 Nginx處理靜態頁面, Tomcat 處理動態頁面;
 
動靜分離從目前實現角度來講大致分為兩種:
    一種是純粹把靜態文件獨立成單獨的域名,放在獨立的服務器上,也是目前主流推崇的方案;
    另外一種方法就是動態跟靜態文件混合在一起發布,通過 nginx 來分開。
 
通過 location 指定不同的后綴名實現不同的請求轉發。
通過 expires 參數設置,可以使瀏覽器緩存過期時間,減少與服務器之前的請求和流量。
例如:設置expires為 3d,表示在這 3 天之內訪問這個 URL,發送一個請求,
    比對服務器該文件最后更新時間沒有變化,則不會從服務器抓取,返回狀態碼304,
    如果有修改,則直接從服務器重新下載,返回狀態碼 200。
 
 
 
1.實際測試
預期效果:
    a.html通過tomcat靜態請求;
    a.html中會引用靜態資源a.css使字體變紅,並且引用靜態資源中的圖片;
    a.css和wst.jpg通過靜態請求;
    遠程訪問a.html時,可以看到a.html中有靜態資源的效果,即字體變紅,有圖片;
 
主要思路:
    在linux服務器根目錄下建一個/data/static目錄用來保存靜態文件;可以用mkdir命令來創建目錄;
    在static文件中放靜態文件;
    在ngnix中配置文件的server塊中添加一個location中來關聯該靜態文件目錄;
    動態文件是通過tomcat來訪問,需要放在tomcat的webapp目錄下;
    在nginx中給tomcat配置反向代理;
 
1)配置靜態文件
在/data/static中放入靜態文件;
a.css:作用是使p標簽中的字體為紅色
p{color:red}
wst.jpg:
 
在ngnix中配置:
        location /static/{
            root    /data/;
            autoindex on;
        }
當請求路徑中有/static/時這條location會生效;
root    /data/;    ->表示請求靜態資源文件的根據路是/data/;
    例如:請求 xxxx:80/static/a.css 時,會以服務器的/data/static/a.css路徑來找;    
autoindex on;    ->作用是列出目錄中的內容;
    例如:訪問 xxxx:80/static/時會顯示static目錄的所有文件;
 
2)配置動態文件
將a.html放入tomcat的webapp目錄中的test目錄中;
a.html:其中引用了靜態資源文件a.css和wst.jpg
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <link rel="stylesheet" href="/static/a.css" type="text/css" />
    </head>
    
    <body>
        <h1>8080</h1>
        <p>如果引用了靜態的css則為紅色</p>
        <img src = "/static/wst.jpg"/>
    </body>    
</html>
 
在nginx中給tomcat配置反向代理:
        location ~/test/{
            proxy_pass  http://127.0.0.1:8080;
        }
請求路徑中帶有tomcat時會訪問tomcat服務器;
 
重啟nginx:
./nginx -s reload
 
遠程訪問:
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM