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

Nginx?反向代理緩存(proxy_cache)的實(shí)現(xiàn)

 更新時(shí)間:2024年08月08日 11:54:52   作者:老貓喜歡今日爬山  
Nginx的緩存加速功能是由proxy_cache和fastcgi_cache兩個(gè)功能模塊完成,本文主要介紹了Nginx?反向代理緩存(proxy_cache)的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下

本文主要介紹了Nginx 反向代理緩存(proxy_cache)的實(shí)現(xiàn),具體如下:

如圖所示,nginx緩存,可以在一定程度上,減少源服務(wù)器的處理請(qǐng)求壓力。因?yàn)殪o態(tài)文件(比如css,js, 圖片)中,很多都是不經(jīng)常更新的。nginx使用proxy_cache將用戶(hù)的請(qǐng)求緩存到本地一個(gè)目錄。下一個(gè)相同請(qǐng)求可以直接調(diào)取緩存文件,就不用去請(qǐng)求服務(wù)器了。畢竟,IO密集型服務(wù)的處理是nginx的強(qiáng)項(xiàng)。

Nginx的緩存加速功能是由proxy_cache(用于反向代理和靜態(tài)緩存)和fastcgi_cache(PHP動(dòng)態(tài)緩存)兩個(gè)功能模塊完成。

Nginx緩存特點(diǎn):

  • 緩存穩(wěn)定,運(yùn)行速度與Squid相差無(wú)幾(因?yàn)槎际褂糜脖P(pán)緩存);
  • 對(duì)多核CPU的利用率比其他的開(kāi)源軟件好;
  • 支持高并發(fā)請(qǐng)求數(shù),能同時(shí)承受更多的訪(fǎng)問(wèn)請(qǐng)求;

1、配置

先上個(gè)例子:

http{
    proxy_connect_timeout 10;
    proxy_read_timeout 180;
    proxy_send_timeout 5;
    proxy_buffer_size 16k;
    proxy_buffers 4 32k;
    proxy_busy_buffers_size 96k;
    proxy_temp_file_write_size 96k;
    proxy_temp_path /tmp/temp_dir;
    proxy_cache_path /tmp/cache levels=1:2 keys_zone=cache_one:100m inactive=1d max_size=10g;

    server {
        listen       80 default_server;
        server_name  localhost;
        root /mnt/blog/;

        location / {

        }

        #要緩存文件的后綴,可以在以下設(shè)置。
        location ~ .*\.(gif|jpg|png|css|js)(.*) {
                proxy_pass http://ip地址:90;
                proxy_redirect off;
                proxy_set_header Host $host;
                proxy_cache cache_one;
                proxy_cache_valid 200 302 24h;
                proxy_cache_valid 301 30d;
                proxy_cache_valid any 5m;
                expires 90d;
                add_header wall  "hey!guys!give me a star.";
        }
    }

    # 無(wú)nginx緩存的blog端口
    server {
        listen  90;
        server_name localhost;
        root /mnt/blog/;

        location / {

        }
    }
}

因?yàn)槲沂窃谝慌_(tái)服務(wù)器上做試驗(yàn),所以用了兩個(gè)端口8090進(jìn)行模擬兩臺(tái)服務(wù)器之間的交互。

  • 80端口對(duì)接的是普通的域名http://wangxiaokai.vip)訪(fǎng)問(wèn)。
  • 90端口負(fù)責(zé)處理80端口代理過(guò)來(lái)的資源訪(fǎng)問(wèn)。
  • 相當(dāng)于90端口是源服務(wù)器,80端口是nginx反向緩存代理服務(wù)器。

接下來(lái)講一下配置項(xiàng):

1.1 http層設(shè)置

    proxy_connect_timeout 10;
    proxy_read_timeout 180;
    proxy_send_timeout 5;
    proxy_buffer_size 16k;
    proxy_buffers 4 32k;
    proxy_busy_buffers_size 96k;
    proxy_temp_file_write_size 96k;
    proxy_temp_path /tmp/temp_dir;
    proxy_cache_path /tmp/cache levels=1:2 keys_zone=cache_one:100m inactive=1d max_size=10g;
  • proxy_connect_timeout 服務(wù)器連接的超時(shí)時(shí)間
  • proxy_read_timeout 連接成功后,等候后端服務(wù)器響應(yīng)時(shí)間
  • proxy_send_timeout 后端服務(wù)器數(shù)據(jù)回傳時(shí)間
  • proxy_buffer_size 緩沖區(qū)的大小
  • proxy_buffers 每個(gè)連接設(shè)置緩沖區(qū)的數(shù)量為number,每塊緩沖區(qū)的大小為size
  • proxy_busy_buffers_size 開(kāi)啟緩沖響應(yīng)的功能以后,在沒(méi)有讀到全部響應(yīng)的情況下,寫(xiě)緩沖到達(dá)一定大小時(shí),nginx一定會(huì)向客戶(hù)端發(fā)送響應(yīng),直到緩沖小于此值。
  • proxy_temp_file_write_size 設(shè)置nginx每次寫(xiě)數(shù)據(jù)到臨時(shí)文件的size(大小)限制
  • proxy_temp_path 從后端服務(wù)器接收的臨時(shí)文件的存放路徑
  • proxy_cache_path 設(shè)置緩存的路徑和其他參數(shù)。被緩存的數(shù)據(jù)如果在inactive參數(shù)(當(dāng)前為1天)指定的時(shí)間內(nèi)未被訪(fǎng)問(wèn),就會(huì)被從緩存中移除

1.2 server層設(shè)置

    server {
        listen       80 default_server;
        server_name  localhost;
        root /mnt/blog/;

        location / {

        }

        #要緩存文件的后綴,可以在以下設(shè)置。
        location ~ .*\.(gif|jpg|png|css|js)(.*) {
                proxy_pass http://ip地址:90;
                proxy_redirect off;
                proxy_set_header Host $host;
                proxy_cache cache_one;
                proxy_cache_valid 200 302 24h;
                proxy_cache_valid 301 30d;
                proxy_cache_valid any 5m;
                expires 90d;
                add_header wall  "hey!guys!give me a star.";
        }
    }
  • proxy_pass nginx緩存里拿不到資源,向該地址轉(zhuǎn)發(fā)請(qǐng)求,拿到新的資源,并進(jìn)行緩存
  • proxy_redirect 設(shè)置后端服務(wù)器“Location”響應(yīng)頭和“Refresh”響應(yīng)頭的替換文本
  • proxy_set_header 允許重新定義或者添加發(fā)往后端服務(wù)器的請(qǐng)求頭
  • proxy_cache 指定用于頁(yè)面緩存的共享內(nèi)存,對(duì)應(yīng)http層設(shè)置的keys_zone
  • proxy_cache_valid 為不同的響應(yīng)狀態(tài)碼設(shè)置不同的緩存時(shí)間
  • expires 緩存時(shí)間

這里我設(shè)置了圖片、cssjs靜態(tài)資源進(jìn)行緩存。 當(dāng)用戶(hù)輸入http://wangxiaokai.vip域名時(shí),解析得到ip:port的訪(fǎng)問(wèn)地址。port默認(rèn)為80。所以頁(yè)面請(qǐng)求會(huì)被當(dāng)前server截取到,進(jìn)行請(qǐng)求處理。 當(dāng)解析到上述文件名結(jié)尾的靜態(tài)資源,會(huì)到緩存區(qū)獲取靜態(tài)資源。 如果獲取到對(duì)應(yīng)資源,則直接返回?cái)?shù)據(jù)。 如果獲取不到,則將請(qǐng)求轉(zhuǎn)發(fā)給proxy_pass指向的地址進(jìn)行處理。

2、主要參數(shù)

1. proxy_cache
語(yǔ)法:proxy_cache zone|off

默認(rèn)為off,即關(guān)閉proxy_cache功能,zone為用于存放緩存的內(nèi)存區(qū)域名稱(chēng)。
例:proxy_cache my_zone;

從nginx 0.7.66版本開(kāi)始,proxy_cache機(jī)制開(kāi)啟后會(huì)檢測(cè)被代理端的HTTP響應(yīng)頭中的"Cache-Control"、"Expire"頭域。
如,Cache-Control為no-cache時(shí),是不會(huì)緩存數(shù)據(jù)的。

2. proxy_cache_bypass 
語(yǔ)法:proxy_cache_bypass string;

該參數(shù)設(shè)定,什么情況下的請(qǐng)求不讀取cache而是直接從后端的服務(wù)器上獲取資源。
這里的string通常為nginx的一些變量。

例:proxy_cahce_bypass $cookie_nocache $arg_nocache$arg_comment;
意思是,如果$cookie_nocache $arg_nocache$arg_comment這些變量的值只要任何一個(gè)不為0或者不為空時(shí),
則響應(yīng)數(shù)據(jù)不從cache中獲取,而是直接從后端的服務(wù)器上獲取。

3. proxy_no_cache
語(yǔ)法:proxy_no_cache string;

該參數(shù)和proxy_cache_bypass類(lèi)似,用來(lái)設(shè)定什么情況下不緩存。

例:proxy_no_cache $cookie_nocache $arg_nocache $arg_comment;
表示,如果$cookie_nocache $arg_nocache $arg_comment的值只要有一項(xiàng)不為0或者不為空時(shí),不緩存數(shù)據(jù)。

4. proxy_cache_key
語(yǔ)法:proxy_cache_key string;

定義cache key,如: proxy_cache_key $scheme$proxy_host$uri$is_args$args; (該值為默認(rèn)值,一般不用設(shè)置)

5. proxy_cache_path
語(yǔ)法:proxy_cache_path path [levels=levels] keys_zone=name:size  [inactive=time] [max_size=size] 

path設(shè)置緩存數(shù)據(jù)存放的路徑;
levels設(shè)置目錄層級(jí),如levels=1:2,表示有兩級(jí)子目錄,第一個(gè)目錄名取md5值的倒數(shù)第一個(gè)值,第二個(gè)目錄名取md5值的第2和3個(gè)值。keys_zone設(shè)置內(nèi)存zone的名字和大小,如keys_zone=my_zone:10m;inactive設(shè)置緩存多長(zhǎng)時(shí)間就失效,當(dāng)硬盤(pán)上的緩存數(shù)據(jù)在該時(shí)間段內(nèi)沒(méi)有被訪(fǎng)問(wèn)過(guò),就會(huì)失效了,該數(shù)據(jù)就會(huì)被刪除,默認(rèn)為10s。max_size設(shè)置硬盤(pán)中最多可以緩存多少數(shù)據(jù),當(dāng)?shù)竭_(dá)該數(shù)值時(shí),nginx會(huì)刪除最少訪(fǎng)問(wèn)的數(shù)據(jù)。

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

相關(guān)文章

  • Nginx禁止IP訪(fǎng)問(wèn)只允許域名訪(fǎng)問(wèn)及防盜鏈設(shè)置

    Nginx禁止IP訪(fǎng)問(wèn)只允許域名訪(fǎng)問(wèn)及防盜鏈設(shè)置

    我們?cè)谑褂玫臅r(shí)候會(huì)遇到很多的惡意IP攻擊,這個(gè)時(shí)候就要用到Nginx 禁止IP訪(fǎng)問(wèn)了,本文主要介紹了Nginx禁止IP訪(fǎng)問(wèn)只允許域名訪(fǎng)問(wèn)及Nginx防盜鏈設(shè)置,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • nginx 代理服務(wù)器配置雙向證書(shū)驗(yàn)證的方法

    nginx 代理服務(wù)器配置雙向證書(shū)驗(yàn)證的方法

    這篇文章主要介紹了nginx 代理服務(wù)器配置雙向證書(shū)驗(yàn)證的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • Nginx防御DDOS攻擊的配置方法教程

    Nginx防御DDOS攻擊的配置方法教程

    Nginx是一款輕量級(jí)的Web服務(wù)器,由俄羅斯的程序設(shè)計(jì)師Igor Sysoev所開(kāi)發(fā),最初供俄國(guó)大型的入口網(wǎng)站及搜尋引Rambler使用。 下面這篇文章主要給大家介紹了關(guān)于Nginx防御DDOS攻擊的配置方法,需要的朋友可以參考下。
    2017-07-07
  • 詳解linux中 Nginx 常見(jiàn)502錯(cuò)誤問(wèn)題解決辦法

    詳解linux中 Nginx 常見(jiàn)502錯(cuò)誤問(wèn)題解決辦法

    這篇文章主要介紹了詳解linux中 Nginx 常見(jiàn)502錯(cuò)誤問(wèn)題解決辦法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • nginx實(shí)現(xiàn)tomcat動(dòng)靜分離詳解

    nginx實(shí)現(xiàn)tomcat動(dòng)靜分離詳解

    本篇文章主要介紹了nginx實(shí)現(xiàn)tomcat動(dòng)靜分離詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • 配置nginx轉(zhuǎn)發(fā)內(nèi)網(wǎng)請(qǐng)求到外網(wǎng)的實(shí)現(xiàn)示例

    配置nginx轉(zhuǎn)發(fā)內(nèi)網(wǎng)請(qǐng)求到外網(wǎng)的實(shí)現(xiàn)示例

    本文主要介紹了配置nginx轉(zhuǎn)發(fā)內(nèi)網(wǎng)請(qǐng)求到外網(wǎng)的實(shí)現(xiàn)示例,通過(guò)nginx配置代理實(shí)現(xiàn)內(nèi)網(wǎng)對(duì)外網(wǎng)接口數(shù)據(jù)的獲取,涉及nginx安裝、配置SSL、日志設(shè)置和錯(cuò)誤排查,感興趣的可以了解一下
    2024-10-10
  • nginx如何指向本地路徑及500錯(cuò)誤解決方法

    nginx如何指向本地路徑及500錯(cuò)誤解決方法

    這篇文章主要為大家介紹了nginx如何指向本地路徑及500錯(cuò)誤解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • Nginx根據(jù)url中的path動(dòng)態(tài)轉(zhuǎn)發(fā)到upstream的實(shí)現(xiàn)

    Nginx根據(jù)url中的path動(dòng)態(tài)轉(zhuǎn)發(fā)到upstream的實(shí)現(xiàn)

    這篇文章主要介紹了Nginx根據(jù)url中的path動(dòng)態(tài)轉(zhuǎn)發(fā)到upstream的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 詳解Nginx 靜態(tài)文件服務(wù)配置及優(yōu)化

    詳解Nginx 靜態(tài)文件服務(wù)配置及優(yōu)化

    這篇文章主要介紹了Nginx 靜態(tài)文件服務(wù)配置及優(yōu)化,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-05-05
  • Nginx+FastDFS搭建圖片服務(wù)器的方法實(shí)現(xiàn)

    Nginx+FastDFS搭建圖片服務(wù)器的方法實(shí)現(xiàn)

    這篇文章主要介紹了Nginx+FastDFS搭建圖片服務(wù)器的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03

最新評(píng)論

固镇县| 娄烦县| 东乡族自治县| 什邡市| 临沂市| 当雄县| 宜黄县| 板桥市| 恭城| 墨脱县| 延川县| 丹江口市| 临朐县| 淮南市| 普安县| 贺兰县| 长丰县| 德清县| 天等县| 澄江县| 彩票| 静乐县| 鹤山市| 东乡族自治县| 永仁县| 馆陶县| 庆安县| 太湖县| 横峰县| 龙游县| 玉溪市| 沧源| 兴仁县| 壶关县| 建始县| 彭泽县| 奉贤区| 五原县| 根河市| 新巴尔虎左旗| 清徐县|