1. 程式人生 > >Nginx進階之快取服務和動靜分離

Nginx進階之快取服務和動靜分離

進階階段回顧:

Nginx進階之靜態Web資源服務

Nginx進階之代理服務

Nginx進階之負載均衡服務

Nginx的快取服務

快取型別模型:

Nginx作為代理快取的配置語法

proxy_cache

快取的路徑

systax: proxy_cache_path [快取存放的目錄] levels=[快取存放的層級, 一般設定為1:2] keys_zone=[快取的名稱, 給開關配置的呼叫]:[開闢的空間大小(1m可以存放8000個key-value), 如: 10m] max_size=[最大允許快取, 如:10g] inactive=[不活躍的快取多長時間後被清除, 如:60m(60分鐘後)] use_temp_path=[是否儲存臨時檔案on|off, 一般設定為off(關閉)];

default: 無配置

context: http域

快取的開關

systax: proxy_cache zone | off;

default: proxy_cache off;

context: http域/server域/location域

快取過期的週期

systax: proxy_cache_valid [返回的狀態碼] [時間週期];

default: 無配置

context: http域/server域/location域

快取的維度

systax: proxy_cache_key string;

default: proxy_cache_key $schema$http_host$request_uri;

context: http域/server域/location域

進入134伺服器配置.conf檔案:

測試的結果表明快取起了作用, 如果不設定快取, 預設的訪問是輪詢, 而設定快取之後, 訪問結果一直是同一個頁面.

設定部分頁面不快取

systax: proxy_no_cache [指定的不快取的內容, 如某些變數: $cookie_nocache];

default: 無配置

context: http域/server域/location域

進入配置檔案:

大檔案分片請求

systax: slice [分片的大小];

default: slice 0;

context: http域/server域/location域

優勢: 每個子請求收到的資料都會形成一個檔案. 如果一個請求斷了, 其他請求不會收到影響, 不需要重頭再開始請求.

缺點: 當檔案很大或者slice設定的值很小的時候, 會導致檔案描述符耗盡的情況發生, 佔用資源.

 

Nginx的動靜分離

模型:

首先, 需要配置一臺Tomcat伺服器(直接解壓Tomcat的tar包即可完成安裝)和一臺192.168.19.135的Nginx伺服器.

Tomcat不需要其他的配置, 預設使用8080埠, 進入bin目錄, 啟動: sh catalina.sh start

進入nginx的配置檔案:

測試檔案test_mysite.html的路徑: /opt/code 內容:

圖片nginx.jpg路徑: /opt/code/static_resource/img

結果: