一、nginx緩存基礎
在高並發、大數據量的情況下,讓網站的訪問速度變快是各大網站運營商必須面對的問題。而Nginx正是為了解決這個問題而生。Nginx提供了一套緩存模塊,用於存儲靜態頁面或動靜分離的頁面,加速訪問並減輕服務器的負擔。
二、nginx緩存與瀏覽器緩存
在緩存系統中,nginx緩存和瀏覽器緩存是兩個不同的緩存。Nginx緩存是由服務器端負責緩存網頁,瀏覽器緩存則由客戶端負責存儲緩存。
Nginx緩存和瀏覽器緩存在一定程度上是可以互相銜接的,如果某些靜態資源在Nginx緩存里已經存在,如果設置了瀏覽器緩存功能,那麼之後在瀏覽器里訪問這個靜態資源的時候就直接使用緩存,減輕服務器的負擔。
三、nginx配置不緩存
如果不希望Nginx緩存某些請求,可以使用“proxy_cache_bypass”指令。這個指令允許你自定義字段,如果請求的URL匹配該字段,緩存將被忽略。
location / { proxy_cache_bypass $http_pragma; proxy_cache_bypass $http_authorization; }
四、nginx緩存清理的方法
當網站內容發生改變時,需要清理緩存以保證用戶能看到最新的頁面。清除Nginx緩存的方式有兩種:
- 刪除指定URL的緩存
- 刪除全部緩存
刪除指定URL的緩存可以使用“proxy_cache_path”指令,將路徑後面加上需要刪除的URL即可。
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m inactive=60m; location / { proxy_cache_key "$scheme$request_method$host$request_uri"; proxy_cache_valid 200 60m; } location /purge_cache { proxy_cache_bypass 1; proxy_cache_revalidate on; proxy_cache_key "$scheme$request_method$host$request_uri"; add_header Content-Type 'text/html; charset=utf-8'; echo "Purged."; }
刪除全部緩存可以使用Nginx的緩存清除命令
nginx -s reload nginx -s stop
五、nginx怎麼配置緩存
緩存是通過location指令指定的,下面是一個基本的配置示例:
proxy_cache_path /data/nginx/cache keys_zone=cache:10m; server { listen 80; server_name localhost; location / { proxy_cache cache; proxy_pass $scheme://localhost:8000; proxy_cache_min_uses 2; proxy_cache_lock on; proxy_cache_valid 200 10m; } }
以上配置將使用“/data/nginx/cache”來緩存,將其命名為“cache”,緩存期限為10分鐘,如果一段時間內URL沒有被訪問,則會被鎖定。此外,只有被訪問2次或更多次的頁面才會被緩存。
六、nginx緩存配置詳解
以上是一個基本的nginx緩存配置示例,但是對於不同的網站來說,緩存策略不盡相同,下面將對nginx的緩存配置進行詳細講解:
- 設置緩存路徑與緩存鍵值
proxy_cache_path用於指定緩存的存放路徑以及緩存鍵值。緩存鍵值由$http_host, $request_uri, $scheme等變量組成,這樣可以保證緩存鍵值唯一。
proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m inactive=60m;
proxy_cache_valid用於設置緩存的存活時間,可以設置多個HTTP狀態碼及其對應的時間。如果某個狀態碼沒有定義時間,則使用默認的時間。
proxy_cache_valid 200 60m; proxy_cache_valid 404 1m; proxy_cache_valid 500 10s;
proxy_cache_bypass用於定義一個控制緩存的變量,當值為1時,不緩存某些http狀態碼。
proxy_cache_bypass $http_pragma; proxy_cache_bypass $http_authorization;
proxy_cache_revalidate用於在下一次請求時強制刷新緩存。
proxy_cache_revalidate on;
當緩存過期或不再使用時,應該將其刪除,以釋放服務器上的磁盤空間。這可以通過在Nginx中設置緩存活動時長來實現。
proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m inactive=60m;
七、nginx緩存功能的作用
Nginx緩存功能的主要作用是減輕服務器的負擔,快速響應靜態頁面和動靜分離的頁面,加快網站的訪問速度,並提高用戶的體驗。同時還可以減少帶寬費用、降低服務器負載,提升系統的穩定性以及保障網站的安全性。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/180028.html