最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nginx服務器作反向代理時的緩存配置要點解析

 更新時間:2016年04月12日 09:24:07   作者:lmdkfs  
這篇文章主要介紹了Nginx服務器作反向代理時的緩存配置要點解析,需要的朋友可以參考下

這里給出示例,并詳解。

http {
[...]
[...]
 
proxy_cache_path /data/nginx/cache/one levels=1:2  keys_zone=one:10m max_size=10g;
proxy_cache_key "$host$request_uri";
 
server {
  server_name m.fzitv.net jb51.net;
  root /home/m.fzitv.net/web;
  index index.php index.html index.htm;
  location / {
    proxy_pass http://127.0.0.1:8080;
    proxy_set_header Host "m.fzitv.net";
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    #開啟反向代理緩存,并使用zone name為one的緩存。
    proxy_cache one;
    #設置狀態(tài)碼為200 302過期時間為10分鐘
    proxy_cache_valid 200 302 10m;
    #設置狀態(tài)碼404的過期時間為1分鐘
    proxy_cache_valid 404   1m;
  }
  #清除緩存
  location ~ /purge(/.*) {
    #允許的IP
    allow 127.0.0.1;
    deny all;
    proxy_cache_purge one $host$1$is_args$args;
  }
}
 
}

反向代理的緩存主要涉及以下幾個命令:

proxy_cache_path proxy_cache_key proxy_cache proxy_cache_valid。
1.proxy_cache_path

這個是設置緩存的目錄,語法如下:

復制代碼 代碼如下:

proxy_cache_path path [ levels = levels ] keys_zone = name : size [ inactive = time ] [ max_size = size ] [ loader_files = number ] [ loader_sleep = time ] [ loader_threshold = time ]


可放置的上下文:
http
參數(shù)解釋:
[ levels = levels ]:
設置緩存目錄層數(shù),如levels=1:2,表示創(chuàng)建兩層目錄緩存,最多創(chuàng)建三層。第一層目錄名取proxy_cache_key md5的最后一個字符,第二層目錄名取倒數(shù)2-3字符,如:
proxy_cache_key md5為b7f54b2df7773722d382f4809d65029c,則:
levels=1:2為/data/nginx/cache/c/29/b7f54b2df7773722d382f4809d65029c
levels=1:2:3為/data/nginx/cache/c/29/650/b7f54b2df7773722d382f4809d65029c
2.keys_zone = name : size:
定義緩存區(qū)域名稱及大小,緩存名稱用于proxy_cache指令設置緩存放置在哪,如proxy_cache one,則把緩存放在zone名稱為one的緩存區(qū),即proxy_cache_path指定的具體位置。
3.proxy_cache_key
這個指令是設置以什么參數(shù)md5得到緩存的文件名,默認為$scheme$proxy_host$request_uri,即以協(xié)議、主機名、請求uri(包含參數(shù))作md5得出緩存的文件名。
proxy_cache_key與下面的清緩存功能(purge cache)有很大關系。
可放置在上下文,http server location
4.proxy_cache
反向代理緩存設置指令,語法proxy_cache zone | off,默認為off。上下文:http server location。
可以放到指定location,這樣匹配此location的url才被緩存。
5.proxy_cache_valid
設置指定狀態(tài)碼的緩存時間,語法proxy_cache_valid [ code …] time。
另外,清緩存需要安裝插件ngx_cache_purge,安裝方法如下:

cd /tmp
wget http://labs.frickle.com/files/ngx_cache_purge-2.1.tar.gz
tar xzf ngx_cache_purge-2.1.tar.gz
cd /tmp
wget http://nginx.org/download/nginx-1.4.2.tar.gz
tar xzf nginx-1.4.2.tar.gz
cd nginx-1.4.2
./configure --prefix=/usr/local/nginx --add-module=/tmp/ngx_cache_purge-2.1
make && make install

緩存過期時間
在配置的時候,有如下三個地方可以設置緩存過期時間:

1.inactive=1d
2.proxy_cache_valid 200 304 1h
3.expires 10m
其實解釋起來很簡單:

inactive=1d 是指多久未訪問以后清除緩存
proxy_cache_valid 200 304 1h 是指距離緩存產生時間多久以后清除緩存
expires 10m 這個不是控制服務器端的,而是指在Http Response header里指定的過期時間,是給客戶端看的。
temp的問題
Nginx進行反代的時候,遇到超出文件大小 proxy_buffer_size 的時候,是一次性把文件都加載到Temp目錄,然后再發(fā)送給用戶。

如果設置了 proxy_buffering off 則不會加載到Temp目錄,而是同步的從上游進行加載。

可以通過設置 proxy_max_temp_file_size 參數(shù)來設置最大可以緩存的文件大小。

206 和 Byte Range 的問題
Byte Range允許客戶端向服務器請求一部分文件,而不是整個文件。大部分支持多線程下載和斷點下載的軟件都是用的這個功能。這個時候服務器返回的Http Code是206 Partial Requests.

但是Nginx做反代的時候,如果沒有好好的設置,這個功能可能會引來Dos攻擊。

因為默認做反代的時候,Nginx向后端服務器請求的時候是不會把 Range 參數(shù)加上的,而是會去請求整個文件,比方說有一個1G的文件,每次請求1M,Nginx會在每次請求的時候去后端請求一個完整的1G文件,然后取出其中的1M發(fā)給客戶端,這個時候中間的流量會暴增,導致整個服務器宕機。今天因為這個問題導致我檢查了很久。

解決方案也很簡單,把 Range 加到Header里就行了。

proxy_set_header Range $http_range;
proxy_set_header If-Range $http_if_range;
proxy_no_cache $http_range $http_if_range;

相關文章

  • Nginx反向代理出現(xiàn)502?Bad?Gateway問題解決

    Nginx反向代理出現(xiàn)502?Bad?Gateway問題解決

    在配置Nginx反向代理時遇到502 Bad Gateway錯誤,經(jīng)過排查發(fā)現(xiàn)是SSL握手問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-10-10
  • Nginx的nginx.conf配置文件中文注釋說明

    Nginx的nginx.conf配置文件中文注釋說明

    這篇文章主要介紹了Nginx的nginx.conf配置文件中文注釋說明,本文是個人注釋版,在生產環(huán)境中經(jīng)常使用,需要的朋友可以參考下
    2014-12-12
  • nginx expires控制頁面緩存

    nginx expires控制頁面緩存

    expires 指令可以控制 HTTP 應答中的“Expires ”和“ Cache-Control ”的頭標(起到控制頁面緩存的作用)
    2013-01-01
  • Nginx跨域訪問場景配置和防盜鏈詳解

    Nginx跨域訪問場景配置和防盜鏈詳解

    這篇文章主要介紹了Nginx跨域訪問場景配置和防盜鏈詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • Nginx負載均衡配置簡單配置方法

    Nginx負載均衡配置簡單配置方法

    Nginx作為負載均衡服務器,用戶請求先到達nginx,再由nginx根據(jù)負載配置將請求轉發(fā)至不同的Web服務器。下面通過本文給大家分享Nginx負載均衡配置簡單配置方法,需要的的朋友參考下吧
    2017-08-08
  • 阿里云國際版使用Nginx作為HTTPS轉發(fā)代理服務器的處理方法

    阿里云國際版使用Nginx作為HTTPS轉發(fā)代理服務器的處理方法

    本文介紹了使用NGINX作為HTTPS流量轉發(fā)代理的兩種方法。它總結了NGINX使用HTTP?CONNECT隧道和NGINX流充當HTTPS轉發(fā)代理的解決方案的原則,環(huán)境構建要求,應用場景和關鍵問題
    2022-05-05
  • keepalived監(jiān)控nginx進程的實現(xiàn)示例

    keepalived監(jiān)控nginx進程的實現(xiàn)示例

    本文主要介紹了keepalived監(jiān)控nginx進程的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-08-08
  • win10安裝配置nginx的過程

    win10安裝配置nginx的過程

    這篇文章主要介紹了win10安裝配置nginx的過程,幫助大家更好的理解和使用nginx服務器,感興趣的朋友可以了解下
    2020-10-10
  • nginx多l(xiāng)ocation配置實例代碼

    nginx多l(xiāng)ocation配置實例代碼

    公司測試環(huán)境使用nginx部署多個前端項目,下面這篇文章主要給大家介紹了關于nginx多l(xiāng)ocation配置的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-04-04
  • Nginx中配置WebSocket代理的詳細步驟

    Nginx中配置WebSocket代理的詳細步驟

    Nginx 可以配置為 WebSocket 代理,將 WebSocket 連接從客戶端轉發(fā)到后端服務器,以下是如何在 Nginx 中配置 WebSocket 代理的詳細步驟和示例配置,需要的朋友可以參考下
    2025-02-02

最新評論

江城| 民县| 龙岩市| 桂东县| 泽普县| 呼和浩特市| 东城区| 繁峙县| 疏勒县| 东源县| 祁东县| 东乌珠穆沁旗| 通海县| 宜宾市| 霍山县| 尼勒克县| 榆中县| 上林县| 绍兴市| 孟村| 封开县| 侯马市| 龙川县| 保定市| 麻江县| 北票市| 从化市| 荃湾区| 温州市| 巴中市| 彩票| 大安市| 洪雅县| 三原县| 高邑县| 漠河县| 通许县| 鹤峰县| 华蓥市| 昭苏县| 桃园县|