天天看點

Nginx學習六:靜态代理

文章目錄

  • ​​一、原因​​
  • ​​二、原理圖​​
  • ​​三、Nginx靜态代理實作方式​​
  • ​​方式一 :在nginx.conf的location中配置靜态資源的字尾​​
  • ​​方式二 在nginx.conf的location中配置靜态資源所在目錄實作​​
  • ​​四、實訓:通過nginx通路上面myweb案例中的圖檔​​
  • ​​方法一​​
  • ​​第一步:修改nginx.conf檔案,在location中配置對靜态資源的攔截,如果是靜态資源,就交給nginx處理,使攔截靜态檔案字尾名的方式​​
  • ​​第二步:重新開機nginx​​
  • ​​第三步:浏覽器通路nginx伺服器,進行測試,發現圖檔無法加載​​
  • ​​第四步:浏覽器通路nginx通路器,進行測試 ,圖檔通路正常,而且通路的是nginx上的圖檔​​
  • ​​方法二:​​
  • ​​第一步:将nginx.conf中的location攔截方式修改為攔截靜态檔案目錄的方式​​
  • ​​第二步:重新開機nginx伺服器,通過浏覽器通路nginx伺服器,進行測試,通路正常,但是通路的是tomcat伺服器下的圖檔​​
  • ​​注意​​

一、原因

把所有靜态資源的通路改為通路nginx,而不是通路tomcat,這種方式叫靜态代理。因為nginx更擅長于靜态資源的處理,性能更好,效率更高。

是以在實際應用中,我們将靜态資源比如圖檔、css、html、js等交給nginx處理,而不是由tomcat處理

二、原理圖

Nginx學習六:靜态代理

三、Nginx靜态代理實作方式

方式一 :在nginx.conf的location中配置靜态資源的字尾

例如:當通路靜态資源,則從linux伺服器/opt/static目錄下擷取(舉例)

location ~ .*\.(js|css|htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid
|doc|ppt|pdf|xls|mp3|wma)$ {
      root /opt/static;
}      

表示正則比對,也就是說後面的内容可以是正規表達式比對

第一個點 . 表示任意字元

*表示一個或多個字元

. 是轉移字元,是後面這個點的轉移字元

| 表示或者

$ 表示結尾

整個配置表示以 .後面括号裡面的這些字尾結尾的檔案都由nginx處理

放置靜态資源的目錄,要注意一下目錄權限問題,如果權限不足,給目錄賦予權限;

否則會出現403錯誤 chmod 755

方式二 在nginx.conf的location中配置靜态資源所在目錄實作

例如:當通路靜态資源,則從linux伺服器/opt/static目錄下擷取(舉例)

location ~ .*/(css|js|img|images) {
      root   /opt/static;
}      

xxx/css

xxx/js

xxx/img

xxx/images

我們将靜态資源放入 /opt/static 目錄下,然後使用者通路時由nginx傳回這些靜态資源

四、實訓:通過nginx通路上面myweb案例中的圖檔

方法一

第一步:修改nginx.conf檔案,在location中配置對靜态資源的攔截,如果是靜态資源,就交給nginx處理,使攔截靜态檔案字尾名的方式

Nginx學習六:靜态代理

第二步:重新開機nginx

Nginx學習六:靜态代理

第三步:浏覽器通路nginx伺服器,進行測試,發現圖檔無法加載

Nginx學習六:靜态代理

右鍵圖檔,檢視圖檔的位址為http://192.168.235.128/myweb/image/001.jpg,因為我們在nginx中配置了對.jpg的攔截,是以請求會交給nginx伺服器進行處理。根據ip + port等于root的原則,我們會去/opt/static/myweb目錄下找資源,是以在/opt/static下建立myweb目錄,并放入image目錄及圖檔,為了和tomcat上的圖檔區分,我們這裡圖檔的内容發生了變化

Nginx學習六:靜态代理

第四步:浏覽器通路nginx通路器,進行測試 ,圖檔通路正常,而且通路的是nginx上的圖檔

Nginx學習六:靜态代理

方法二:

第一步:将nginx.conf中的location攔截方式修改為攔截靜态檔案目錄的方式

Nginx學習六:靜态代理

第二步:重新開機nginx伺服器,通過浏覽器通路nginx伺服器,進行測試,通路正常,但是通路的是tomcat伺服器下的圖檔

注意

繼續閱讀