国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

分布式 - 服務(wù)器Nginx:一小時入門系列之代理緩沖與緩存

這篇具有很好參考價(jià)值的文章主要介紹了分布式 - 服務(wù)器Nginx:一小時入門系列之代理緩沖與緩存。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

官方文檔:https://nginx.org/en/docs/http/ngx_http_proxy_module.html

1. 代理緩沖 proxy_buffer

代理緩沖用于臨時存儲從后端服務(wù)器返回的響應(yīng)數(shù)據(jù)。通過使用代理緩沖,Nginx可以在接收完整的響應(yīng)后再將其發(fā)送給客戶端,從而提高性能和效率。

① 客戶端往往是用戶網(wǎng)絡(luò),情況復(fù)雜,可能出現(xiàn)網(wǎng)絡(luò)不穩(wěn)定,速度較慢的情況。而nginx到后端server一般處于同一個機(jī)房或者區(qū)域,網(wǎng)速穩(wěn)定且速度極快。

② 如果禁用了緩沖,則在客戶端從代理服務(wù)器接收響應(yīng)時,響應(yīng)將同步發(fā)送到客戶端。對于需要盡快開始接收響應(yīng)的快速交互式客戶端,此行為可能是可取的。這就會帶來一個問題:因?yàn)榭蛻舳说?nginx 的網(wǎng)速過慢,導(dǎo)致 nginx 只能以一個較慢的速度將響應(yīng)傳給客戶端;進(jìn)而導(dǎo)致后端server也只能以同樣較慢的速度傳遞響應(yīng)給nginx,造成一次請求連接耗時過長。

③ 啟用緩沖后,nginx先將后端的請求響應(yīng)放入緩沖區(qū)中,等到整個響應(yīng)完成后,再發(fā)給客戶端。

分布式 - 服務(wù)器Nginx:一小時入門系列之代理緩沖與緩存,【分布式-服務(wù)器Nginx】,分布式,服務(wù)器,nginx

開啟代理緩沖后,nginx 可以用較快的速度盡可能將響應(yīng)體讀取并緩沖到本地內(nèi)存或磁盤中,同時根據(jù)客戶端的網(wǎng)絡(luò)質(zhì)量以合適的網(wǎng)速將響應(yīng)傳遞給客戶端。這樣既解決了server端連接過多的問題,也保證了能持續(xù)穩(wěn)定的像客戶端傳遞響應(yīng)。

1. proxy_buffering 指令

當(dāng) proxy_buffering 設(shè)置為 off 時,Nginx 將禁用代理緩沖。這意味著當(dāng) Nginx 作為代理服務(wù)器轉(zhuǎn)發(fā)請求時,它將立即將響應(yīng)從上游服務(wù)器傳遞給客戶端,而不會先將響應(yīng)緩存到 Nginx 服務(wù)器上。

使用 proxy_buffering 啟用和禁用緩沖,nginx默認(rèn)為 on 啟用緩沖,若要關(guān)閉,設(shè)置為 off 。

proxy_buffering off;

禁用代理緩沖可以提高實(shí)時性和響應(yīng)速度,特別適用于實(shí)時通信、流媒體或需要立即將數(shù)據(jù)傳遞給客戶端的應(yīng)用程序。然而,禁用代理緩沖也可能增加上游服務(wù)器的負(fù)載,因?yàn)樗鼈冃枰磿r響應(yīng)每個請求。

禁用代理緩沖可以提高實(shí)時性和響應(yīng)速度,特別適用于實(shí)時通信、流媒體或需要立即將數(shù)據(jù)傳遞給客戶端的應(yīng)用程序。然而,禁用代理緩沖也可能增加上游服務(wù)器的負(fù)載,因?yàn)樗鼈冃枰磿r響應(yīng)每個請求。

2. proxy_buffers 與 proxy_buffer_size 指令

proxy_buffers 指令用于設(shè)置代理服務(wù)器緩存響應(yīng)的緩沖區(qū)大小和數(shù)量。它的語法如下:

proxy_buffers number size;

其中,number 表示緩沖區(qū)的數(shù)量,size 表示每個緩沖區(qū)的大小。例如,如果設(shè)置為 proxy_buffers 4 32k; 則會為每個客戶端連接分配 4 個緩沖區(qū),每個緩沖區(qū)的大小為 32KB。

通常情況下,來自后端服務(wù)器響應(yīng)的第一部分存儲在單獨(dú)的緩沖區(qū)中,這個緩沖區(qū)存儲的是相對較小的響應(yīng)頭部信息,大小通過 proxy_buffer_size 指令進(jìn)行設(shè)置 ,建議將 proxy_buffer_size 設(shè)置為小于默認(rèn)值。默認(rèn)情況下,proxy_buffer_size 的大小為4k,但可以根據(jù)實(shí)際需求進(jìn)行調(diào)整。

location / {
    proxy_buffers 16 4k;
    proxy_buffer_size 2k;
    proxy_pass http://localhost:8088;
}

2. 代理緩存

啟用緩存后,nginx將響應(yīng)保存在磁盤中,返回給客戶端的數(shù)據(jù)首先從緩存中獲取,這樣子相同的請求不用每次都發(fā)送給后端服務(wù)器,減少到后端請求的數(shù)量。

分布式 - 服務(wù)器Nginx:一小時入門系列之代理緩沖與緩存,【分布式-服務(wù)器Nginx】,分布式,服務(wù)器,nginx

1. proxy_cache_path 指令

proxy_cache_path 指令用于指定緩存文件存儲的路徑、緩存文件的格式、緩存文件的最大大小等參數(shù)。以下是 proxy_cache_path 的常用參數(shù):

  • path: 緩存文件存儲的路徑。
  • levels: 緩存文件存儲的目錄層數(shù)。
  • keys_zone: 緩存文件的鍵值對存儲區(qū)域。
  • inactive: 緩存文件的過期時間,單位為秒。
  • max_size: 緩存文件的最大大小。
  • use_temp_path: 是否使用臨時文件夾存儲緩存文件。

例如,以下配置將緩存文件存儲在 /var/cache/nginx 目錄下,緩存文件的鍵值對存儲區(qū)域?yàn)?my_cache,緩存文件的過期時間為 10 分鐘,緩存文件的最大大小為 1GB:

proxy_cache_path /var/cache/nginx keys_zone=my_cache:10m inactive=10m max_size=1g;

在配置反向代理時,可以使用 proxy_cache 指令啟用緩存,例如:

location / {
    proxy_pass http://backend;
    proxy_cache my_cache;
    proxy_cache_valid 200 10m;
}

以上配置將啟用緩存,并設(shè)置緩存文件的過期時間為 10 分鐘。當(dāng) Nginx 收到客戶端請求時,如果緩存中存在對應(yīng)的響應(yīng),Nginx 將直接返回緩存中的響應(yīng),而不是向后端服務(wù)器發(fā)起請求。

2. proxy_cache_valid 指令

proxy_cache_valid 指令用于設(shè)置緩存的有效期。

proxy_cache_valid [code ...] time;

其中,code是HTTP響應(yīng)狀態(tài)碼,可以是一個或多個,用空格分隔。如果省略code參數(shù),則表示適用于所有狀態(tài)碼。time是緩存的有效期,可以是一個時間段,也可以是一個時間戳。

如果要設(shè)置不同狀態(tài)碼的不同緩存時間,可以使用多個proxy_cache_valid指令,例如:

proxy_cache_valid 200 10m;
proxy_cache_valid 404 1m;

這樣就表示緩存200狀態(tài)碼的響應(yīng)10分鐘,緩存404狀態(tài)碼的響應(yīng)1分鐘。

3. proxy_cache_min_uses 指令

可以使用 proxy_cache_min_uses 設(shè)置相同的key的請求,訪問次數(shù)超過指定數(shù)量才會被緩存。

proxy_cache_min_uses 指令用于設(shè)置在緩存服務(wù)器中緩存一個響應(yīng)所需的最小請求數(shù)。當(dāng)一個請求被代理到后端服務(wù)器時,如果該請求的響應(yīng)已經(jīng)被緩存,Nginx 會將緩存的響應(yīng)返回給客戶端,而不是將請求轉(zhuǎn)發(fā)到后端服務(wù)器。proxy_cache_min_uses 指令可以控制在緩存服務(wù)器中緩存一個響應(yīng)所需的最小請求數(shù),以避免緩存不必要的響應(yīng)。當(dāng)一個響應(yīng)被緩存時,Nginx 會記錄該響應(yīng)被緩存的時間,并在一定時間后將其從緩存中刪除。如果一個響應(yīng)被緩存的時間太短,那么它可能會被頻繁地從緩存中刪除和重新緩存,這會浪費(fèi)緩存服務(wù)器的資源。因此,通過設(shè)置 proxy_cache_min_uses 指令,可以確保只有經(jīng)過多次訪問的響應(yīng)才會被緩存,從而提高緩存服務(wù)器的效率。

proxy_cache_min_uses 5;

默認(rèn)情況下,響應(yīng)無限期地保留在緩存中。僅當(dāng)緩存超過最大配置大小時,按照時間刪除最舊的數(shù)據(jù)。文章來源地址http://www.zghlxwxcb.cn/news/detail-679977.html

3. 應(yīng)用

proxy_cache_path /var/cache/nginx/data keys_zone=mycache:10m;

server {
    listen 8001;
    server_name ruoyi.localhost;
    
    location / {
        #設(shè)置buffer
        proxy_buffers 16 4k;
        proxy_buffer_size 2k;
        proxy_pass http://localhost:8088;        
    }

    location ~ \.(js|css|png|jpg|gif|ico) {
        #設(shè)置cache
        proxy_cache mycache;
        proxy_cache_valid 200 302 10m;
        proxy_cache_valid 404      1m;
        proxy_cache_valid any 5m;
        proxy_pass http://localhost:8088;  
    }

    location = /html/ie.html {
        proxy_cache mycache;
        proxy_cache_valid 200 302 10m;
        proxy_cache_valid 404      1m;
        proxy_cache_valid any 5m;
        proxy_pass http://localhost:8088;  
    }

    location ^~ /fonts/ {
        proxy_cache mycache;
        proxy_cache_valid 200 302 10m;
        proxy_cache_valid 404      1m;
        proxy_cache_valid any 5m;
        proxy_pass http://localhost:8088;  
    }
}

到了這里,關(guān)于分布式 - 服務(wù)器Nginx:一小時入門系列之代理緩沖與緩存的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 分布式 - 服務(wù)器Nginx:一小時入門系列之HTTP反向代理

    分布式 - 服務(wù)器Nginx:一小時入門系列之HTTP反向代理

    1. 正向代理和反向代理 正向代理是 客戶端 通過代理服務(wù)器訪問互聯(lián)網(wǎng)資源的方式。在這種情況下,客戶端向代理服務(wù)器發(fā)送請求,代理服務(wù)器再向互聯(lián)網(wǎng)上的服務(wù)器發(fā)送請求,獲取資源并返回給客戶端。正向代理的典型應(yīng)用場景是翻墻,即通過代理服務(wù)器訪問被封鎖的網(wǎng)站

    2024年02月14日
    瀏覽(22)
  • 分布式 - 服務(wù)器Nginx:一小時入門系列之HTTPS協(xié)議配置

    分布式 - 服務(wù)器Nginx:一小時入門系列之HTTPS協(xié)議配置

    1. HTTPS 協(xié)議 HTTPS 是一種通過計(jì)算機(jī)網(wǎng)絡(luò)進(jìn)行安全通信的協(xié)議。它是HTTP的安全版本,通過使用 SSL 或 TLS 協(xié)議來加密和保護(hù)數(shù)據(jù)傳輸。HTTPS的主要目的是確保在客戶端和服務(wù)器之間傳輸?shù)臄?shù)據(jù)是加密的,以防止第三方竊聽、篡改或偽裝。它通過使用公鑰加密和私鑰解密的方式來

    2024年02月11日
    瀏覽(20)
  • 分布式 - 服務(wù)器Nginx:一小時入門系列之代理緩沖與緩存

    分布式 - 服務(wù)器Nginx:一小時入門系列之代理緩沖與緩存

    官方文檔:https://nginx.org/en/docs/http/ngx_http_proxy_module.html 代理緩沖用于臨時存儲從后端服務(wù)器返回的響應(yīng)數(shù)據(jù)。通過使用代理緩沖,Nginx可以在接收完整的響應(yīng)后再將其發(fā)送給客戶端,從而提高性能和效率。 ① 客戶端往往是用戶網(wǎng)絡(luò),情況復(fù)雜,可能出現(xiàn)網(wǎng)絡(luò)不穩(wěn)定,速度較

    2024年02月11日
    瀏覽(23)
  • 分布式 - 服務(wù)器Nginx:一小時入門系列之 HTTPS協(xié)議配置

    分布式 - 服務(wù)器Nginx:一小時入門系列之 HTTPS協(xié)議配置

    1. HTTPS 協(xié)議 HTTPS 是一種通過計(jì)算機(jī)網(wǎng)絡(luò)進(jìn)行安全通信的協(xié)議。它是HTTP的安全版本,通過使用 SSL 或 TLS 協(xié)議來加密和保護(hù)數(shù)據(jù)傳輸。HTTPS的主要目的是確保在客戶端和服務(wù)器之間傳輸?shù)臄?shù)據(jù)是加密的,以防止第三方竊聽、篡改或偽裝。它通過使用公鑰加密和私鑰解密的方式來

    2024年02月11日
    瀏覽(25)
  • 分布式 - 服務(wù)器Nginx:一小時入門系列之TCP反向代理和負(fù)載均衡

    分布式 - 服務(wù)器Nginx:一小時入門系列之TCP反向代理和負(fù)載均衡

    1. HTTP反向代理和TCP反向代理 Nginx可以作為HTTP反向代理和TCP反向代理。 HTTP反向代理是指Nginx作為Web服務(wù)器的代理服務(wù)器,接收客戶端的HTTP請求,然后將請求轉(zhuǎn)發(fā)給后端的Web服務(wù)器,最后將Web服務(wù)器的響應(yīng)返回給客戶端。這種方式可以實(shí)現(xiàn)負(fù)載均衡、緩存、SSL終止等功能。 T

    2024年02月11日
    瀏覽(35)
  • Windows服務(wù)器設(shè)置Nginx實(shí)現(xiàn)分布式服務(wù)

    Windows服務(wù)器設(shè)置Nginx實(shí)現(xiàn)分布式服務(wù)

    下載Nginx-1.16.1版本。解壓到如下目錄: 設(shè)置環(huán)境變量: 檢查版本: 啟動nginx.exe ,出現(xiàn)黑框一閃而過,進(jìn)程中出現(xiàn)如下情況代表啟動成功: 下載wiremock-standalone-2.25.1.jar,可以使用Maven配置pom.xml下載。注意下載standalone版本。新建ServerA、ServerB兩個目錄,分別拷貝jar,新建啟動

    2024年02月07日
    瀏覽(29)
  • 分布式 - 服務(wù)器Nginx:基礎(chǔ)系列之Nginx配置文件結(jié)構(gòu)

    分布式 - 服務(wù)器Nginx:基礎(chǔ)系列之Nginx配置文件結(jié)構(gòu)

    Nginx的核心配置文件默認(rèn)是放在 /usr/local/nginx/conf/nginx.conf : nginx.conf 配置文件中默認(rèn)有三大塊:全局塊、events塊、http塊。其中http 塊中可以配置多個server塊,每個server塊又可以配置多個location塊。 01. user 指令 user指令也可以用于指定Nginx服務(wù)器worker進(jìn)程的運(yùn)行用戶和用戶組。它

    2024年02月10日
    瀏覽(32)
  • 分布式 - 服務(wù)器Nginx:基礎(chǔ)系列之Nginx簡介 | 下載安裝 | 啟動和停止服務(wù)

    分布式 - 服務(wù)器Nginx:基礎(chǔ)系列之Nginx簡介 | 下載安裝 | 啟動和停止服務(wù)

    Nginx是一個高性能的Web服務(wù)器,同時也是一個反向代理服務(wù)器。它最初是為了解決C10K問題而開發(fā)的,即如何讓一個服務(wù)器同時處理成千上萬個并發(fā)連接。Nginx采用了事件驅(qū)動的異步非阻塞處理方式,能夠高效地處理大量并發(fā)連接,因此被廣泛應(yīng)用于高并發(fā)的Web應(yīng)用場景中。 此

    2024年02月10日
    瀏覽(57)
  • 分布式 - 服務(wù)器Nginx:應(yīng)知應(yīng)會系列之Nginx簡介 | 下載安裝 | 啟動和停止服務(wù)

    分布式 - 服務(wù)器Nginx:應(yīng)知應(yīng)會系列之Nginx簡介 | 下載安裝 | 啟動和停止服務(wù)

    Nginx是一個高性能的Web服務(wù)器,同時也是一個反向代理服務(wù)器。它最初是為了解決C10K問題而開發(fā)的,即如何讓一個服務(wù)器同時處理成千上萬個并發(fā)連接。Nginx采用了事件驅(qū)動的異步非阻塞處理方式,能夠高效地處理大量并發(fā)連接,因此被廣泛應(yīng)用于高并發(fā)的Web應(yīng)用場景中。 此

    2024年02月11日
    瀏覽(59)
  • 分布式 - 服務(wù)器Nginx:基礎(chǔ)系列之Nginx靜態(tài)資源配置優(yōu)化sendfile | tcp_nopush | tcp_nodelay

    分布式 - 服務(wù)器Nginx:基礎(chǔ)系列之Nginx靜態(tài)資源配置優(yōu)化sendfile | tcp_nopush | tcp_nodelay

    1. sendfile 指令 請求靜態(tài)資源的過程:客戶端通過網(wǎng)絡(luò)接口向服務(wù)端發(fā)送請求,操作系統(tǒng)將這些客戶端的請求傳遞給服務(wù)器端應(yīng)用程序,服務(wù)器端應(yīng)用程序會處理這些請求,請求處理完成以后,操作系統(tǒng)還需要將處理得到的結(jié)果通過網(wǎng)絡(luò)適配器傳遞回去。 sendfile 指令是用于將

    2024年02月09日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包