亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
?nginx緩存實(shí)際上是如何工作的
?常見(jiàn)的陷阱以及如何避免它們
? ?現(xiàn)實(shí)世界中使用
首頁(yè) 運(yùn)維 Nginx 深入研究Nginx緩存

深入研究Nginx緩存

Jul 31, 2025 am 07:35 AM

NGINX緩存是通過(guò)Proxy_cache_path在本地存儲(chǔ)上游響應(yīng)的工作,從而使使用Proxy_Cache啟用緩存,並使用Proxy_cache_key(自定義以避免默認(rèn)的陷阱)定義唯一的鍵,並通過(guò)Proxy_cache_valid設(shè)置ttls,並使用X-Cache-cache-StatusStatus Heastersersersersersersersersersersersersersersersssepting ttls。 2. Common issues include overly broad keys (fix: include cookies or query strings), caching dynamic content like /api (fix: use proxy_cache_bypass), no invalidation strategy (fix: use purge, short TTLs, or versioned keys), and ignoring origin cache headers (fix: respect or override with proxy_ignore_headers); 3. Pro提示:使用fastcgi_cache進(jìn)行PHP,監(jiān)視命中率和磁盤(pán)使用情況,溫暖的高速緩存後,並使用Proxy_cache_use_stale啟用了陳舊的回報(bào),以及零下降彈性的背景更新(零正確) - 正確的,它可以增強(qiáng)負(fù)載,從而降低負(fù)載,從而完全降低使用用戶(hù)體驗(yàn)。

深入研究Nginx緩存

NGINX緩存不僅僅是要在您的配置中拍打proxy_cache並將其稱(chēng)為一天 - 它是一種強(qiáng)大的工具,當(dāng)正確調(diào)整時(shí),可以削減響應(yīng)時(shí)間,減少後端負(fù)載並大大改善用戶(hù)體驗(yàn)。但是配置錯(cuò)誤嗎?它可以提供陳舊的內(nèi)容,廢物內(nèi)存,甚至可以破壞您的應(yīng)用程序。讓我們分解。

深入研究Nginx緩存

?nginx緩存實(shí)際上是如何工作的

從本地緩存中,NGINX的核心是一種反向代理,該反向代理存儲(chǔ)了上游服務(wù)器(例如Apache,node.js或php-fpm)的響應(yīng)。當(dāng)再次提出相同的請(qǐng)求時(shí),NGINX將提供緩存的版本,而不是擊中後端。

關(guān)鍵組件:

深入研究Nginx緩存
  • proxy_cache_path :定義緩存在磁盤(pán)上存儲(chǔ)的位置和方式。
  • proxy_cache :?jiǎn)⒂锰囟ㄎ恢玫木彺妗?/li>
  • proxy_cache_key :控制nginx如何標(biāo)識(shí)唯一的請(qǐng)求(默認(rèn)是風(fēng)險(xiǎn)?。?。
  • proxy_cache_valid :為不同的HTTP狀態(tài)代碼設(shè)置TTL。
  • add_header X-Cache-Status $upstream_cache_status; :非常有用,可用於調(diào)試 - 如果您是命中,錯(cuò)過(guò)或過(guò)期的話(huà),請(qǐng)向您介紹。

示例最小設(shè)置:

 http {
    proxy_cache_path/var/carce/nginx級(jí)別= 1:2 keys_zone = my_cache:10m max_size = 10g intairive = nestair = 60m use_temp_path = off;

    伺服器 {
        地點(diǎn) / {
            proxy_pass http:// backend;
            proxy_cache my_cache;
            proxy_cache_valid 200 302 10m;
            proxy_cache_valid 404 1m;
            add_header x-cache-status $ upstream_cache_status;
        }
    }
}

?常見(jiàn)的陷阱以及如何避免它們

  1. 默認(rèn)proxy_cache_key太寬了
    默認(rèn)情況下,nginx使用$scheme$proxy_host$request_uri ,它忽略了諸如?utm_source=...查詢(xún)字符串,但也忽略了X-Forwarded-Proto或Cookie之類(lèi)的東西。
    修復(fù):自定義密鑰以包括重要的內(nèi)容:

    深入研究Nginx緩存
     PROXY_CACHE_KEY“ $ scheme $ host $ request_uri $ cookie_user”;
  2. 緩存動(dòng)態(tài)內(nèi)容(例如 /API或特定用戶(hù)特定頁(yè)面)
    如果您緩存/profile/cart ,用戶(hù)可能會(huì)看到別人的數(shù)據(jù)。
    修復(fù):排除敏感路徑:

    位置? ^/(api | admin | profile){
        proxy_cache_bypass 1;
        proxy_no_cache 1;
    }
  3. 不處理緩存無(wú)效
    nginx不會(huì)在內(nèi)容更新上自動(dòng)侵權(quán) - 您需要策略。
    選項(xiàng)

    • 使用proxy_cache_purge (需要ngx_http_cache_purge_module
    • 為揮發(fā)性?xún)?nèi)容設(shè)置簡(jiǎn)短的TTL
    • 通過(guò)緩存密鑰更改觸發(fā)緩存破壞(例如,添加版本參數(shù))
  4. 忽略起源的高速緩存標(biāo)頭
    如果您的應(yīng)用程序發(fā)送Cache-Control: no-cache ,則NGINX應(yīng)尊重它。
    修復(fù)

     proxy_ignore_headers cache-control;
    proxy_cache_valid 200 302 5m;

    (或者,如果您相信您的後端,請(qǐng)不要忽略它們。)


? ?現(xiàn)實(shí)世界中使用

  • 使用fastcgi_cache用於PHP應(yīng)用程序(例如WordPress):相同的邏輯,不同的指令。
  • 監(jiān)視緩存性能
    • 通過(guò)日誌檢查命中率( $upstream_cache_status
    • 觀看磁盤(pán)用法( /var/cache/nginx
    • 使用諸如goaccess或Prometheus nginx-Module-vts之類(lèi)的工具
  • 部署後加熱緩存- 手動(dòng)或通過(guò)腳本擊中密鑰URL。
  • 使用陳舊的恢復(fù)模式:
     proxy_cache_use_stale錯(cuò)誤超時(shí)更新http_500;
    proxy_cache_background_update on;

    這使得Nginx在背景中悄悄地刷新它 - 在後端打ic中零停機(jī)時(shí)間。


    基本上,NGINX緩存起初很簡(jiǎn)單,但足夠深,可以?xún)?yōu)化幾個(gè)月。正確獲取基礎(chǔ)知識(shí),避免常見(jiàn)的陷阱,您會(huì)看到速度和可擴(kuò)展性的真正勝利。

    以上是深入研究Nginx緩存的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

熱門(mén)話(huà)題

Laravel 教程
1597
29
PHP教程
1488
72
主Nginx配置文件(nginx.conf)在哪裡? 主Nginx配置文件(nginx.conf)在哪裡? Jul 05, 2025 am 12:10 AM

Nginx主配置文件通常位於/etc/nginx/nginx.conf(Ubuntu/Debian、CentOS/RHEL)、/usr/local/etc/nginx/nginx.conf(macOSHomebrew)或源碼安裝路徑下的conf目錄;可通過(guò)nginx-t查看加載的配置路徑,ps-ef|grepnginx檢查啟動(dòng)參數(shù)指定的路徑,或用find/-namenginx.conf、locatenginx.conf快速查找;配置文件結(jié)構(gòu)包含全局設(shè)置、events塊和http塊,常見(jiàn)站點(diǎn)配置常

是什麼導(dǎo)致NGINX中的'太多打開(kāi)文件”錯(cuò)誤? 是什麼導(dǎo)致NGINX中的'太多打開(kāi)文件”錯(cuò)誤? Jul 05, 2025 am 12:14 AM

當(dāng)Nginx出現(xiàn)“Toomanyopenfiles”錯(cuò)誤時(shí),通常是因?yàn)橄到y(tǒng)或進(jìn)程達(dá)到了文件描述符限制。解決方法包括:1.提高Linux系統(tǒng)的軟硬限制,在/etc/security/limits.conf中設(shè)置nginx或運(yùn)行用戶(hù)的相關(guān)參數(shù);2.調(diào)整Nginx的worker_connections值以適應(yīng)預(yù)期流量,並確保重載配置;3.增加系統(tǒng)級(jí)文件描述符上限fs.file-max,編輯/etc/sysctl.conf並應(yīng)用更改;4.優(yōu)化日誌和資源使用,減少不必要的文件句柄佔(zhàn)用,例如使用open_l

如何啟用GZIP壓縮以減少文件大小? 如何啟用GZIP壓縮以減少文件大小? Jul 10, 2025 am 11:35 AM

啟用Gzip壓縮可有效減少網(wǎng)頁(yè)文件體積、提升加載速度。 1.Apache服務(wù)器需在.htaccess文件中添加配置並確保mod_deflate模塊已啟用;2.Nginx則需編輯站點(diǎn)配置文件,設(shè)置gzipon並定義壓縮類(lèi)型、最小長(zhǎng)度和壓縮等級(jí);3.配置完成後可通過(guò)在線工具或?yàn)g覽器開(kāi)發(fā)者工具驗(yàn)證是否生效。操作時(shí)需注意服務(wù)器模塊狀態(tài)與MIME類(lèi)型完整性以確保壓縮正常運(yùn)行。

什麼是Stub_Status模塊,如何啟用其監(jiān)視? 什麼是Stub_Status模塊,如何啟用其監(jiān)視? Jul 08, 2025 am 12:30 AM

stub_status模塊顯示Nginx的實(shí)時(shí)基礎(chǔ)狀態(tài)信息。具體包括:1.當(dāng)前活躍連接數(shù);2.總接受連接數(shù)、總處理連接數(shù)、總請(qǐng)求數(shù);3.正在讀取、寫(xiě)入、等待的連接數(shù)。要檢查是否啟用,可通過(guò)命令nginx-V查看是否存在--with-http_stub_status_module參數(shù)。若未啟用,需重新編譯加入該模塊。啟用時(shí)需在配置文件中添加location塊並設(shè)置訪問(wèn)控制,最後重載Nginx服務(wù)即可通過(guò)指定路徑訪問(wèn)狀態(tài)頁(yè)面。建議結(jié)合監(jiān)控工具使用,但僅限內(nèi)部網(wǎng)絡(luò)訪問(wèn),且不能替代全面監(jiān)控方案。

錯(cuò)誤'已經(jīng)在使用中的地址”或'端口80已經(jīng)在使用中”是什麼意思? 錯(cuò)誤'已經(jīng)在使用中的地址”或'端口80已經(jīng)在使用中”是什麼意思? Jul 07, 2025 am 12:09 AM

"Addressalreadyinuse"錯(cuò)誤意味著系統(tǒng)中另一程序或服務(wù)已佔(zhàn)用目標(biāo)端口或IP地址。常見(jiàn)原因包括:1.服務(wù)器重複運(yùn)行;2.其他服務(wù)佔(zhàn)用端口(如Apache佔(zhàn)用80端口導(dǎo)致Nginx無(wú)法啟動(dòng));3.崩潰或重啟後端口未釋放??赏ㄟ^(guò)命令行工具排查:Linux/macOS使用sudolsof-i:80或sud??onetstat-tulpn|grep:80;Windows通過(guò)netstat-ano|findstr:80並查PID。解決方法包括:1.停止衝突進(jìn)程(如sudos

如何啟用HTTP嚴(yán)格運(yùn)輸安全(HSTS)? 如何啟用HTTP嚴(yán)格運(yùn)輸安全(HSTS)? Jul 12, 2025 am 01:00 AM

啟用HSTS的方法是在HTTPS網(wǎng)站中配置Strict-Transport-Security響應(yīng)頭,具體操作為:1.Nginx在server塊添加add_header指令;2.Apache在配置文件或.htaccess添加Header指令;3.IIS在web.config添加customHeaders;需確保站點(diǎn)已完整支持HTTPS,參數(shù)包括max-age(有效期)、includeSubDomains(子域名生效)、preload(預(yù)加載列表),提交到HSTSPreload列表前提包括根域名和子

什麼是Nginx Plus,其主要功能是什麼? 什麼是Nginx Plus,其主要功能是什麼? Jul 07, 2025 am 12:37 AM

NginxPlus與開(kāi)源Nginx的主要區(qū)別在於其為企業(yè)級(jí)應(yīng)用提供的增強(qiáng)功能和官方支持。 1.它提供實(shí)時(shí)監(jiān)控儀錶盤(pán),可追蹤連接數(shù)、請(qǐng)求率及服務(wù)器健康狀態(tài);2.支持更高級(jí)的負(fù)載均衡方法,如最少連接數(shù)分配、基於哈希的一致性算法及加權(quán)分發(fā);3.支持會(huì)話(huà)保持(粘性會(huì)話(huà)),確保用戶(hù)請(qǐng)求持續(xù)發(fā)送至同一後端服務(wù)器;4.允許動(dòng)態(tài)更新配置,無(wú)需重啟服務(wù)即可調(diào)整上游服務(wù)器組;5.提供高級(jí)緩存和內(nèi)容分發(fā)功能,降低後端壓力並提升響應(yīng)速度;6.可通過(guò)API實(shí)現(xiàn)自動(dòng)化配置更新,適應(yīng)Kubernetes或自動(dòng)擴(kuò)展環(huán)境;7.包含

如何使用split_clients模塊執(zhí)行A/B測(cè)試? 如何使用split_clients模塊執(zhí)行A/B測(cè)試? Jul 08, 2025 am 12:22 AM

A/B測(cè)試可通過(guò)Nginx的split_clients模塊實(shí)現(xiàn),該方法基於用戶(hù)屬性哈希將流量按比例分配至不同組。具體步驟如下:1.在http塊中使用split_clients指令定義分組及比例,如50%A和50%B;2.使用$cookie_jsessionid、$remote_addr或$arg_uid等變量作為哈希鍵,確保同一用戶(hù)持續(xù)分配至同一組;3.在server或location塊中通過(guò)if條件判斷使用對(duì)應(yīng)後端;4.通過(guò)自定義日誌格式記錄分組信息以便分析效果;5.結(jié)合監(jiān)控工具跟蹤各組性能與

See all articles