<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 什么是 Nginx 緩存 Nginx 基于Proxy Store 實現,使用 Nginx 的 `http_proxy `模塊可以實現類似于squid 的緩存功能。當啟用緩存時,Nginx 會將相應數據保存在磁盤緩存中,只要緩存數據尚未過期,就會使用緩存數據來響應客戶端的請求。 ## 啟用緩存 1. 在 http 模塊下配置`proxy_cache_path `命令: ~~~ proxy_cache_path /data/cache keys_zone=huancun:10m; ~~~ 第一個參數指定緩存保存的本地路徑;第二個參數定義緩存數據的共享內存區域的名稱和內存區大小。 Nginx 啟動后,緩存加載程序只進行加載一次,加載時會將緩存的元數據加載到共享內存區域,但是如果一次加載整個緩存全部內容可能會使 Nginx 剛啟動的前幾分鐘性能消耗嚴重,大幅度降低 Nginx 的性能。所以可以在 `proxy_cache_path`命令中配置緩存迭代加載。緩存迭代加載一共可以設置三個參數: - loader_threshold:迭代的持續時間 (毫秒)(默認 200) - loader_files:在一次迭代期間加載的最大項目(毫秒)(默認 100) - loader_sleeps:迭代之間的延遲(毫秒)(默認為50) 例: ~~~ proxy_cache_path /data/cache keys_zone=niyueling:10m loader_threshold=300 loader_files=200; ~~~ 2. 在虛擬服務器配置中配置`proxy_cache`命令: ~~~ proxy_cache huancun; ~~~ 指定內存區。 > ps:通過配置 proxy_cache_path 中的 keys_zone 參數內存大小為 10m,并不會限制緩存數據大小,實際上緩存數據是存儲在文件系統中的特定文件的元數據副本。如果想要限制緩存數據的上限,則需要在proxy\_cache\_path命令中添加max\_size參數設置緩存數據上限 3. 在虛擬服務器下配置`proxy_cache_methods`命令指定該虛擬服務器下什么類型的 HTTP 方法可以被緩存 ~~~ proxy_cache_methods[GET HEAD POST]; ~~~ 默認情況下 `GET` 請求及 `HEAD` 請求會被緩存,而`POST`請求不會被緩存。 4. `proxy_cache_vaild` 針對不同狀態碼的響應數據設置不同的緩存時間 ~~~ proxy_cache_valid reply_code [reply_code...] time; ~~~ 例: ~~~ proxy_cache_valid 200 10m; # 200狀態碼的緩存時間為 10 分鐘 proxy_cache_valid 404 1m; # 404的緩存時間為 1 分鐘 proxy_cache_valid 302 5m; # 302重定向的緩存時間為 5 分鐘 proxy_cache_valid any 5m; # 所有狀態緩存時間 5 分鐘 ~~~ 5. `proxy_cache_bypass` ~~~ proxy_cache_bypass $cookie_nocache $arg_nocache$arg_comment; ·~~~ 配置不從緩存中獲取響應的條件。如果URL中包含該配置的值,則這次請求會直接跳過緩存直接請求后端服務去獲取數據 6. `proxy_cache_min_uses` ~~~ proxy_cache_min_uses 2; ~~~ 設置當某請求最少響應幾次后會被緩存, 默認 1。 ## 清除緩存 如果緩存過期則需要從緩存中刪除過期的緩存文件,防止新舊緩存出現交錯出錯,當Nginx接收到自定義HTTP頭或者PURGE請求時,緩存將會被清除。 ### 配置緩存清除 http 模塊下創建一個新變量 `$purge_method` 來標識使用 `PURGE `方法的請求并刪除匹配的 URL。 ~~~ http { map $request_method $purge_method { PURGE 1; default 0; } } ~~~ 進入虛擬服務器配置,在location中配置高速緩存,并且指定緩存清除請求命令`proxy_cache_purge`。 ~~~ server { listen 80; server_name huancun.test; location / { proxy_cache huancun; proxy_cache_purge $purge_method; } } ~~~ ### 發送清除命令 發送PURGE請求來清除緩存 ~~~ PURGE huancun.test ~~~ 這些高速緩存數據不會從緩存中完全刪除,它們將保留在磁盤上,直到它們被刪除為非活動狀態,或由緩存清除進程處理。 ### 限制IP訪問清除命令 ~~~ geo $purge_allowed { default 0; 192.168.1.100/24 1; } map $request_method $purge_method { PURGE $purge_allowed; default 0; } ~~~ 當Nginx接收到清除緩存請求時,Nginx 檢查客戶端 IP 地址,若 IP 地址已經獲得清除緩存權限,則`$purge_method`設置為`$purge_allowed`,值為 1 表示允許清除緩存,值為0表示表示 IP 地址未獲得權限。 > 相關函數文檔:https://nginx.org/en/docs/http/ngx_http_proxy_module.html
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看