Nginx快取使用
一個web快取坐落在客戶端和「原始伺服器(origin server)」中間,它保留了所有可見內容的拷貝。如果一個客戶端請求的內容在快取中存儲,則可以直接在快取中獲得該內容而不需要與伺服器通訊。 建議學習中:nginx使用上為 )
這樣一來,因為web快取應用程式使用較近的響應式可提高效能,並能提升距離使用者伺服器,因為伺服器不用每次請求都進行頁面產生工作。
在瀏覽器和應用程式伺服器之間,存在多種「潛在」緩存,如:客戶端瀏覽器快取、中間快取、內容分發網路(CDN)和伺服器上的負載平衡和反向代理。緩存,僅在反向代理和負載平衡的層面,就對效能提高有很大的幫助。
舉個例子說明,去年,我接手了一項任務,這項任務的內容是對一個載入緩慢的網站進行效能優化。
首先引起我注意的事情是,這個網站差不多花了超過1秒鐘才產生了主頁。經過一系列調試,我發現加載緩慢的原因在於頁面被標記為不可緩存,即為了回應每個請求,頁面都是動態生成的。
由於頁面本身並不需要經常性的變更,且不涉及個人化,那麼這樣做其實並沒有必要。
為了驗證我的結論,我將頁面標記為每5秒快取一次,僅僅做了這一個調整,就能明顯的感受到效能的提升。第一個位元組到達的時間降低到幾毫秒,同時頁面的載入明顯要更快。
並不是只有大規模的內容分發網路(CDN)可以在使用快取中受益——快取還可以提高負載平衡器、反向代理和應用伺服器前端web服務的效能。
透過上面的例子,我們看到,快取內容結果,可以更有效率的使用應用程式伺服器,因為不需要每次都去做重複的頁面產生工作。此外,Web快取還可以用來提高網站可靠性。
當伺服器當機或繁忙時,比起返回錯誤訊息給用戶,不如透過配置NGINX將已經快取下來的內容傳送給用戶。這意味著,網站在應用伺服器或資料庫故障的情況下,可以保持部分甚至全部的功能運作。
如何安裝和設定基礎快取
我們只需要兩個指令就可以啟用基礎快取:proxy_cache_path和proxy_cache。 proxy_cache_path用來設定快取的路徑和配置,proxy_cache用來啟用快取。
proxy_cache_path/path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off; server { ... location / { proxy_cachemy_cache; proxy_pass http://my_upstream; } }
1.用於快取的本機磁碟目錄是/path/to/cache/
#2.levels在/path/to/cache/設定了一個兩層層次結構的目錄。
將大量的檔案放置在單一目錄中會導致檔案存取緩慢,所以針對大多數部署,我們建議使用兩層目錄層次結構。如果levels參數沒有配置,則NGINX會將所有的檔案放到同一個目錄中。
3.keys_zone設定一個共享記憶體區,該記憶體區用於儲存快取鍵和元數據,有些類似計時器的用途。
將鍵的拷貝放入記憶體可以讓NGINX在不檢索磁碟的情況下快速決定一個請求是`HIT`還是`MISS`,這大大提高了檢索速度。
一個1MB的記憶體空間可以儲存大約8000個key,那麼上面配置的10MB記憶體空間可以儲存差不多80000個key。
4.max_size設定了快取的上限(在上面的範例中是10G)。這是一個可選項;如果不指定具體值,那就是允許快取不斷增長,佔用所有可用的磁碟空間。
當快取達到這個上線,處理器便呼叫cache manager來移除最近最少被使用的文件,這樣把快取的空間降低到這個限制之下。
5.inactive指定了專案在不被存取的情況下能夠在記憶體中保持的時間。在上面的例子中,如果一個檔案在60分鐘內沒有被請求,則快取管理將會自動將其在記憶體中刪除,不管該檔案是否過期。此參數預設值為10分鐘(10m)。
注意,非活動內容有別於過期內容。 NGINX不會自動刪除由快取控制頭部指定的過期內容(本例中Cache-Control:max-age=120)。
過期內容只有在inactive指定時間內沒有被存取的情況下才會被刪除。
如果過期內容被存取了,那麼NGINX就會將其從原始伺服器上刷新,並更新對應的inactive計時器。
6.NGINX最初會將注定寫入快取的檔案先放入一個暫存區域,use_temp_path=off指令指示NGINX將在快取這些檔案時將它們寫入同一個目錄下。
我們強烈建議你將參數設為off來避免在檔案系統中不必要的資料拷貝。 use_temp_path在NGINX1.7版本和NGINX Plus R6中有所介紹。
最終,proxy_cache指令啟動快取那些URL與location部分相符的內容(本例中,為`/`)。你同樣可以將proxy_cache指令加入server部分,這將會將快取應用到所有的那些location中未指定自己的proxy_cache指令的服務中。
以上是Nginx快取使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

如何在 Windows 中配置 Nginx?安裝 Nginx 並創建虛擬主機配置。修改主配置文件並包含虛擬主機配置。啟動或重新加載 Nginx。測試配置並查看網站。選擇性啟用 SSL 並配置 SSL 證書。選擇性設置防火牆允許 80 和 443 端口流量。

可以通過以下步驟查詢 Docker 容器名稱:列出所有容器(docker ps)。篩選容器列表(使用 grep 命令)。獲取容器名稱(位於 "NAMES" 列中)。

Docker 容器啟動步驟:拉取容器鏡像:運行 "docker pull [鏡像名稱]"。創建容器:使用 "docker create [選項] [鏡像名稱] [命令和參數]"。啟動容器:執行 "docker start [容器名稱或 ID]"。檢查容器狀態:通過 "docker ps" 驗證容器是否正在運行。

確認 Nginx 是否啟動的方法:1. 使用命令行:systemctl status nginx(Linux/Unix)、netstat -ano | findstr 80(Windows);2. 檢查端口 80 是否開放;3. 查看系統日誌中 Nginx 啟動消息;4. 使用第三方工具,如 Nagios、Zabbix、Icinga。

可以查詢 Nginx 版本的方法有:使用 nginx -v 命令;查看 nginx.conf 文件中的 version 指令;打開 Nginx 錯誤頁,查看頁面的標題。

在 Docker 中創建容器: 1. 拉取鏡像: docker pull [鏡像名] 2. 創建容器: docker run [選項] [鏡像名] [命令] 3. 啟動容器: docker start [容器名]

在雲服務器上配置 Nginx 域名的方法:創建 A 記錄,指向雲服務器的公共 IP 地址。在 Nginx 配置文件中添加虛擬主機塊,指定偵聽端口、域名和網站根目錄。重啟 Nginx 以應用更改。訪問域名測試配置。其他注意事項:安裝 SSL 證書啟用 HTTPS、確保防火牆允許 80 端口流量、等待 DNS 解析生效。

啟動 Nginx 服務器需要按照不同操作系統採取不同的步驟:Linux/Unix 系統:安裝 Nginx 軟件包(例如使用 apt-get 或 yum)。使用 systemctl 啟動 Nginx 服務(例如 sudo systemctl start nginx)。 Windows 系統:下載並安裝 Windows 二進製文件。使用 nginx.exe 可執行文件啟動 Nginx(例如 nginx.exe -c conf\nginx.conf)。無論使用哪種操作系統,您都可以通過訪問服務器 IP
