欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nginx實(shí)現(xiàn)清除緩存內(nèi)容

 更新時(shí)間:2024年08月07日 10:51:28   作者:Hi無(wú)涯教程  
NGINX可以從緩存中刪除舊的和過(guò)期的緩存文件,本文主要介紹了Nginx實(shí)現(xiàn)清除緩存內(nèi)容,具有一定的參考價(jià)值,感興趣的可以了解一下

NGINX可以從緩存中刪除舊的和過(guò)期的緩存文件。刪除過(guò)期的緩存內(nèi)容是強(qiáng)制性的,以防止同時(shí)提供新舊版本的網(wǎng)頁(yè)。收到包含自定義HTTP標(biāo)頭或HTTP PURGE方法的特殊"purge"請(qǐng)求后,將清除緩存。

配置緩存清除

讓我們?cè)O(shè)置一個(gè)配置,該配置用于識(shí)別使用HTTP PURGE方法的請(qǐng)求并刪除匹配的URL。

1.在http {}上下文中,添加一個(gè)新變量,例如$purge_method,該變量取決于$request_method變量:

http {
    ...
    map $request_method $purge_method {
        PURGE 1;
        default 0;
    }
}

2.在配置緩存的location{}塊中,添加proxy_cache_purge指令以指定用于緩存清除請(qǐng)求的條件。在我們的示例中,它是在上面的步驟中配置的$ purge_method:

server {
    listen      80;
    server_name www.example.com;

    location/{
        proxy_pass  https://localhost:8002;
        proxy_cache mycache;

        proxy_cache_purge $purge_method;
    }
}

發(fā)送清除命令

當(dāng)proxy_cache_purge指令的配置完成時(shí),我們需要發(fā)送一個(gè)特殊的cache-purge請(qǐng)求來(lái)清除緩存。我們可以使用一系列工具發(fā)出清除請(qǐng)求,包括以下示例中的curl命令:

$ curl -X PURGE -D - "https://www.example.com/*"
HTTP/1.1 204 No Content
Server: nginx/1.15.0
Date: Sat, 19 May 2018 16:33:04 GMT
Connection: keep-alive

在上面的示例中,將清除具有由星號(hào)通配符指定的公共URL部分的資源。但是,此類(lèi)高速緩存條目不會(huì)完全從高速緩存中刪除:它們會(huì)一直保留在磁盤(pán)上,直到因不活動(dòng)而被刪除,或者被高速緩存清除程序(已將proxy_cache_path的purger參數(shù)啟用)刪除,或者被客戶(hù)端嘗試訪問(wèn)它們。

限制清除命令訪問(wèn)

我們建議您限制允許發(fā)送緩存清除請(qǐng)求的IP地址數(shù)量:

geo $purge_allowed {
   default         0;  # deny from other
   10.0.0.1        1;  # allow from localhost
   192.168.0.0/24  1;  # allow from 10.0.0.0/24
}

map $request_method $purge_method {
   PURGE   $purge_allowed;
   default 0;
}

在上面的示例中,NGINX檢查請(qǐng)求中是否使用了PURGE方法,如果是,則分析客戶(hù)端IP地址。如果IP地址已列入白名單,則$ purge_method設(shè)置為$ purge_allowed:1允許清除,0拒絕清除。

完全刪除文件

要完全刪除與星號(hào)(*)匹配的緩存文件,該過(guò)程將永久性地遍歷所有緩存條目,并刪除與通配符匹配的條目。在http{}上下文中將purger參數(shù)包括到proxy_cache_path指令中:

proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=mycache:10m purger=on;

緩存清除配置示例

http {
    ...
    proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=mycache:10m purger=on;

    map $request_method $purge_method {
        PURGE 1;
        default 0;
    }

    server {
        listen      80;
        server_name www.example.com;

        location/{
            proxy_pass        https://localhost:8002;
            proxy_cache       mycache;
            proxy_cache_purge $purge_method;
        }
    }

    geo $purge_allowed {
       default         0;
       10.0.0.1        1;
       192.168.0.0/24  1;
    }

    map $request_method $purge_method {
       PURGE   $purge_allowed;
       default 0;
    }
}

Byte-Range緩存

有時(shí),初始高速緩存填充操作會(huì)花費(fèi)很長(zhǎng)時(shí)間,尤其是對(duì)于大型文件。例如,當(dāng)視頻文件開(kāi)始下載以滿(mǎn)足部分文件的初始請(qǐng)求時(shí),后續(xù)請(qǐng)求必須等待整個(gè)文件被下載并放入緩存中。

在Nginx中,可以緩存這樣的范圍請(qǐng)求,并使用"Cache Slice"模塊逐漸填充緩存,該模塊將文件分成較小的"slices"。每個(gè)范圍請(qǐng)求都選擇覆蓋所請(qǐng)求范圍的特定切片,如果仍未緩存該范圍,則將其放入緩存。這些切片的所有其他請(qǐng)求都從緩存中獲取數(shù)據(jù)。

啟用byte-range緩存:

  • 首先,確保使用緩存切片模塊編譯了NGINX。
  • 使用slice指令定義切片的大小:
location/{
    slice  1m;
}
  • 選擇切片的大小,以使切片下載更快。如果大小太小,則內(nèi)存使用可能會(huì)過(guò)多,并且會(huì)打開(kāi)大量文件描述符。如果大小很大,則處理請(qǐng)求可能會(huì)導(dǎo)致延遲。將$slice_range變量添加到緩存鍵:
proxy_cache_key $uri$is_args$args$slice_range;
  • 啟用具有206狀態(tài)代碼的響應(yīng)緩存:
proxy_cache_valid 200 206 1h;
  • 通過(guò)在Range標(biāo)頭字段中設(shè)置變量(即$ slice_range),將范圍請(qǐng)求傳遞到代理服務(wù)器:
proxy_set_header  Range $slice_range;

這里是完整的配置:

location/{
    slice             1m;
    proxy_cache       cache;
    proxy_cache_key   $uri$is_args$args$slice_range;
    proxy_set_header  Range $slice_range;
    proxy_cache_valid 200 206 1h;
    proxy_pass        http://localhost:8000;
}

請(qǐng)注意,如果啟用了切片緩存,則不得更改初始文件。

組合配置示例

http {
    ...
    proxy_cache_path /data/nginx/cache keys_zone=one:10m loader_threshold=300 
                     loader_files=200 max_size=200m;

    server {
        listen 8080;
        proxy_cache mycache;

        location/{
            proxy_pass http://backend1;
        }

        location /some/path {
            proxy_pass http://backend2;
            proxy_cache_valid any 1m;
            proxy_cache_min_uses 3;
            proxy_cache_bypass $cookie_nocache $arg_nocache$arg_comment;
        }
    }
}

到此這篇關(guān)于Nginx實(shí)現(xiàn)清除緩存內(nèi)容的文章就介紹到這了,更多相關(guān)Nginx 清除緩存 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • Nginx代理緩沖proxy_buffering配置方式

    Nginx代理緩沖proxy_buffering配置方式

    這篇文章主要介紹了Nginx代理緩沖proxy_buffering配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • nginx優(yōu)化的六點(diǎn)方法

    nginx優(yōu)化的六點(diǎn)方法

    這篇文章主要介紹了nginx優(yōu)化的六點(diǎn)方法,有對(duì)nginx優(yōu)化不太熟悉的同學(xué)可以參考下
    2021-01-01
  • Nginx之QPS限制模塊的具體使用

    Nginx之QPS限制模塊的具體使用

    本文主要介紹了Nginx之QPS限制模塊的具體使用,主要介紹Nginx QPS限制模塊的原理、安裝和使用方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • Nginx中的location路徑映射問(wèn)題

    Nginx中的location路徑映射問(wèn)題

    這篇文章主要介紹了Nginx中的location路徑映射問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 詳解實(shí)現(xiàn)Nginx+Tomcat實(shí)現(xiàn)單IP、多域名、多站點(diǎn)的訪問(wèn)

    詳解實(shí)現(xiàn)Nginx+Tomcat實(shí)現(xiàn)單IP、多域名、多站點(diǎn)的訪問(wèn)

    這篇文章主要介紹了詳解實(shí)現(xiàn)Nginx+Tomcat實(shí)現(xiàn)單IP、多域名、多站點(diǎn)的訪問(wèn)的相關(guān)資料,這里提供實(shí)例幫助到大家實(shí)現(xiàn)改功能,希望能幫助到大家,需要的朋友可以參考下
    2017-08-08
  • nginx正向代理與反向代理詳解

    nginx正向代理與反向代理詳解

    本文給大家分享的是nginx實(shí)現(xiàn)正向代理和反向代理的具體方法配置以及不同的實(shí)例情況,非常的詳細(xì),希望大家能夠喜歡
    2020-03-03
  • 深度詳解什么是Nginx正向代理與反向代理

    深度詳解什么是Nginx正向代理與反向代理

    這篇文章主要介紹了Nginx正向代理與Nginx反向代理的區(qū)別,比較易懂,需要的朋友可以參考下
    2023-03-03
  • Nginx如何安裝配置Lua支持

    Nginx如何安裝配置Lua支持

    這篇文章主要介紹了Nginx如何安裝配置Lua支持方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • nginx實(shí)現(xiàn)重寫(xiě)功能和防盜鏈功能

    nginx實(shí)現(xiàn)重寫(xiě)功能和防盜鏈功能

    這篇文章主要介紹了nginx實(shí)現(xiàn)重寫(xiě)功能和防盜鏈功能,Nginx服務(wù)器利用 ngx_http_rewrite_module 模塊解析和處理rewrite請(qǐng)求,防盜鏈基于客戶(hù)端攜帶的referer實(shí)現(xiàn),文中通過(guò)代碼示例講解的非常詳細(xì),需要的朋友可以參考下
    2024-06-06
  • Nginx啟用GZIP壓縮網(wǎng)頁(yè)傳輸方法(推薦)

    Nginx啟用GZIP壓縮網(wǎng)頁(yè)傳輸方法(推薦)

    Gzip壓縮我很早已經(jīng)就啟用了,不過(guò)從未與大家分享過(guò)。今天小編給大家分享Nginx啟用GZIP壓縮網(wǎng)頁(yè)傳輸方法,需要的朋友參考下吧
    2017-01-01

最新評(píng)論