<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的緩存模式: 緩存是通過鍵值存儲的,鍵是存放在內存中,數據是放到磁盤上。在內存中找一塊空間,每個鍵以哈希編碼的方式放到內存,這個鍵所對應的值指向的是磁盤中緩存空間的內容的路徑。磁盤上存放緩存的文件系統,層級不會太深。 1)命令 proxy_cache_path Syntax: proxy_cache_path path [levels=levels] [use_temp_path=on|off] keys_zone=name:size [inactive=time] [max_size=size] [manager_files=number] [manager_sleep=time] [manager_threshold=time] [loader_files=number] [loader_sleep=time] [loader_threshold=time] [purger=on|off] [purger_files=number] [purger_sleep=time] [purger_threshold=time]; Default: — Context: http loader_threshold----指定每次加載執行的時間 loader_files---每次加載的數量 loader_sleeps---每次加載的延時 inactive 非活動期限 max_size:設置磁盤中緩存數據的大小限制 案例: proxy_cache_path /data/nginx/cache keys_zone=one:10m loader_threshold=300 loader_files=200; (在內存中找10M的空間,并取名為one) file names in a cache will look like this: /data/nginx/cache/c/29/b7f54b2df7773722d382f4809d65029c 指定緩存哪些請求 nginx默認會緩存所有 get 和 head 方法的請求結果,緩存的key默認使用請求字符串 2)proxy_cache_min_uses Syntax: proxy_cache_min_uses number; Default: proxy_cache_min_uses 1; Context: http, server, location Sets the number of requests after which the response will be cached. 該指令用于設置客戶端請求發送的次數,當客戶端向被代理服務器發送相同請求達到指令設置的次數后,nginx服務器才會對請求的響應數據做緩存 默認為1次 proxy_cache_min_uses 2; 3)proxy_cache_key 該指令用于設置nginx服務器在內存中為緩存數據建立索引時使用的關鍵字 例如 proxy_cache_key "$host$request_uri$cookie_user"; proxy_cache_key “$scheme$proxy_host$uri$is_args$args” 4)緩存有效期 該指令可以針對不同的http響應狀態設置不同的緩存時間 可以指定緩存有效時間,例如 proxy_cache_valid 200 302 10m; //響應狀態碼為200 302時,10分鐘有效 proxy_cache_valid any 5m; //對應任何狀態碼,5分鐘有效 5)是否使用過期的內容響應 proxy_cache_use_stale Syntax: proxy_cache_use_stale error | timeout | invalid_header | updating | http_500 | http_502 | http_503 | http_504 | http_403 | http_404 | http_429 | off ...; Default: proxy_cache_use_stale off; Context: http, server, location 如果nginx在訪問被代理服務器過程中出現,被代理服務器無法訪問或者訪問錯誤等現象,nginx服務器可以使用歷史緩存響應用戶端的請求,但這些數據不一定和被代理服務器上的最新數據相一致。 案例: proxy_cache_use_stale error invalid_header http_500 http_502 http_503 http_504 ; 6)緩存修剪(proxy_cache_purge) proxy_cache_path /data/nginx/cache keys_zone=cache_zone:10m; map $request_method $purge_method { PURGE 1; default 0; } server { ... location / { proxy_pass http://backend; proxy_cache cache_zone; proxy_cache_key $uri; proxy_cache_purge $purge_method; } } 7) proxy_cache_bypass 繞開緩存 用于設置nginx將不會從緩存存取數據 例如 proxy_cache_bypass $cookie_nocache $arg_nocache$arg_comment; proxy_cache_bypass $cookie_nocache $arg_nocache $arg_comment; proxy_cache_bypass $http_pragma $http_authorization; 案例: ![](https://box.kancloud.cn/76a7b2be587a8221c4812b6b5e85e432_1052x530.png) 第二部分:案例 在http段定義 proxy_cache_path /cache/nginx levels=1:2 keys_zone=mycache:32m; [root@proxy01 nginx]# mkdir -p /cache/nginx && chown nginx.nginx /cache/nginx [root@proxy01 nginx]# ll /cache/nginx/ -d drwxr-xr-x 2 nginx nginx 4096 Dec 20 16:18 /cache/nginx/ 在server段配置 location /bbs/ { proxy_cache mycache; proxy_cache_valid 200 1d; proxy_cache_valid 301 302 10m; proxy_cache_valid any 1m; proxy_cache_use_stale error timeout http_500 http_502 http_503 http_504 http_429; proxy_cache_min_uses 2; proxy_cache_key "$host$request_uri"; proxy_pass http://10.100.100.106:8082/bbs/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } 第三部分:配置緩存修剪 1、下載ngx_cache_purge wget https://github.com/FRiCKLE/ngx_cache_purge/archive/2.3.zip https://codeload.github.com/FRiCKLE/ngx_cache_purge/zip/master 2、配置nginx location ~ /purge(/.*) { auth_basic "allow purge cache data"; auth_basic_user_file /usr/local/nginx/conf/conf.d/.htpasswd; allow 127.0.0.1; allow 10.100.100.0/24; deny all; proxy_cache_purge mycache $host$1$is_args$args; } location /bbs/ { proxy_cache mycache; proxy_cache_valid 200 1d; proxy_cache_valid 301 302 10m; proxy_cache_valid any 1m; proxy_cache_use_stale error timeout http_500 http_502 http_503 http_504; proxy_cache_min_uses 2; proxy_cache_key $host$uri$is_args$args; proxy_pass http://10.100.100.106:8082/bbs/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } 3、安裝httpd,并通過htpasswd設置密碼 htpasswd -c -m /usr/local/nginx/conf/conf.d/.htpasswd tom 4、重啟nginx服務 測試 [root@proxy01 nginx]# pwd /cache/nginx [root@proxy01 nginx]# ll total 0 (剛開始緩存沒有內容) 此時訪問https://test.51yuki.cn/bbs/a.html 然后在查看 [root@proxy01 nginx]# ll total 4 drwx------ 3 nginx nginx 4096 Dec 20 17:23 c [root@proxy01 nginx]# cd c/9a/ [root@proxy01 9a]# ll total 4 -rw------- 1 nginx nginx 456 Dec 20 17:23 36e85e58edcd96369da181c0eab5e9ac (發現有緩存咯,此時我們模擬修改后臺服務器的內容) [root@node1 bbs]# echo "this a test file" >> a.html 然后在測試訪問,發現還是原來的內容 我們就可以把緩存的內容修剪掉,訪問如下 [root@node1 bbs]# echo "this a test file" >> a.html ![](https://box.kancloud.cn/a1cdb88dfe8f4951bbce63e3a949ac17_1100x310.png) 在訪問,發現就是新的內容咯 ![](https://box.kancloud.cn/1ccd75a3a61cb9fa1e025740da88a7e3_567x134.png) 五、自定義響應報文的首部 通過add_header添加頭部 語法: Syntax: add_header name value [always]; Default: — Context: http, server, location, if in location 案例: server { listen 443 ssl; server_name www.test.com; add_header X-Via $server_addr; add_header X-Cache $upstream_cache_status; ![](https://box.kancloud.cn/8ead34b364d4f6a6b79001ce8691185f_537x218.png)
                  <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>

                              哎呀哎呀视频在线观看