Nginx 反向 Proxy快取服務器搭建
相關標籤:1.Nginx Ingress Controller
2. 解析 Nginx 日誌
摘要:用於將內網的串連請求(如 VPN/NAT)代理到互連網。
代理服務可簡單分為正向 Proxy和反向 Proxy:
正向 Proxy:用戶端指定Proxy 伺服器,將原本打算直接發送給目標 Web 服務器的 HTTP 要求發送到Proxy 伺服器,再由Proxy 伺服器訪問 Web 服務器,並將 Web 服務器的響應返回給用戶端:
反向 Proxy:與正向 Proxy相反,如果區域網路向互連網提供資源並允許互連網上的其他使用者訪問區域網路內的資源,可以設定Proxy 伺服器,其提供的服務即為反向 Proxy。反向 Proxy伺服器接收來自互連網的串連,然後將請求轉寄到內網伺服器,並將響應返回給
1. 反向 Proxy是指Proxy 伺服器接收用戶端的串連請求,然後將請求轉寄到網路上的 Web 服務器(可能是 Apache、Nginx、Tomcat、IIS 等),並將 Web 服務器獲得的結果返回給請求串連的用戶端,Proxy 伺服器對外表現為伺服器。
從上圖可以看出:反向 Proxy伺服器代理網站 Web 服務器接收 HTTP 要求並轉寄請求。而且作為反向 Proxy伺服器,Nginx 可以根據使用者請求的內容將請求轉寄到不同的後端 Web 服務器,例如實現動靜分離,又如在 Nginx 上建立多個虛擬機器主機,使得在瀏覽器中輸入不同的網域名稱(URL)時可以順利訪問後端不同的 Web 服務器或 Web 叢集。
2. 反向 Proxy的作用是什嗎?
① 保護網站安全:來自互連網的任何請求都必須先經過Proxy 伺服器;
wKioL1jsz9yAHyulAABvTU4R-Ew435.png-wh_50
② 通過配置緩衝功能加速 Web 請求:可以緩衝真實 Web 服務器上的一些靜態資源,減輕真實 Web 服務器的負載壓力;
wKiom1jsz-nwYDqSAABjrKK3l5E661.png-wh_50
③ 實現負載平衡:充當負載平衡伺服器,均衡地分發請求,平衡叢集中各台伺服器的負載壓力;
wKiom1jsz__Q7RpoAAJQnYSWdA8640.png-wh_50
1. Nginx 簡介
Nginx 是一款輕量級的 Web 服務器、反向 Proxy和郵件Proxy 伺服器。以穩定性、豐富的功能集、樣本設定檔和低系統資源消耗著稱。Nginx(發音同 engine x)由俄羅斯程式員 Igor Sysoev 開發,最初被俄羅斯大型門戶網站和搜尋引擎 Rambler(俄語:Рамблер)使用。該軟體採用 BSD 類許可證發布,可運行於 UNIX、GNU/Linux、BSD、Mac OS X、Solaris 和 Microsoft Windows。
Nginx 的應用現狀
Nginx 已在俄羅斯最大的門戶網站 Rambler Media(www.rambler.ru)上運行,俄羅斯超過 20% 的虛擬機器主機平台使用 Nginx 作為反向 Proxy伺服器。
在中國,淘寶、新浪微博、新浪播客、網易新聞、六間房、56.com、Discuz!、水木社區、豆瓣、YUPOO、國內、迅雷線上等眾多網站已使用 Nginx 作為 Web 服務器或反向 Proxy伺服器。
2. Nginx 的核心特性
(1)跨平台:Nginx 可在大多數作業系統上編譯運行,同時提供 Windows 版本;
(2)配置非常簡單:非常容易上手。
(3)非阻塞式高並發串連:官方測試可支援5萬並發串連,在實際生產環境中可運行2萬至3萬並發串連。(這得益於 Nginx 使用了最新的 epoll 模型);
說明:
對於 Web 服務器,首先看一個請求的基本流程:建立串連 - 接收資料 - 發送資料,從系統底層來看:上述過程(建立串連 - 接收資料 - 發送資料)在系統底層是一個讀寫事件。
如果採用阻塞調用方式:當讀寫事件未就緒時,只能等待,當前線程被掛起,直到事件就緒才能進行讀寫操作。
如果採用非阻塞調用方式:事件立即返回,告知事件尚未就緒,稍後再來。過一會兒再次檢查事件,直到事件就緒,期間可以先做其他事情,然後再回來檢查事件是否就緒。雖然不會被阻塞,但需要不時檢查事件狀態,能做更多事情,不過開銷不小。非阻塞調用意味著在結果未立即可用時,該調用不會阻塞當前線程。
(4)事件驅動:通訊機制採用 epoll 模型,支援更大的並發串連。
非阻塞通過不斷檢查事件狀態來判斷是否執行讀寫操作,帶來了很大的開銷,因此有了非同步非阻塞事件處理機制。該機制允許同時監聽多個事件,調用它們是非阻塞的,但可以設定逾時。在逾時時間內,如果某個事件就緒就會返回。該機制解決了阻塞調用和非阻塞調用的上述兩個問題。
以 epoll 模型為例:當事件未就緒時,將其放入 epoll(隊列)。如果某個事件就緒,就處理它;當事件未就緒時,在 epoll 中等待。這樣,我們就可以並發處理大量的請求。當然,這裡的並發請求指的是未處理的請求。只有一個線程,所以同一時刻當然只有一個請求能被處理。只是在請求之間不斷切換。切換也是因為非同步事件未就緒而主動放棄的。這裡的切換沒有代價,可以理解為在迴圈遍曆多個已就緒的事件。
與多線程方式相比,這種事件處理方式有很大優勢。不需要建立線程,每個請求佔用的記憶體極少。沒有環境切換。事件處理非常輕量,並發數量大也不會導致資源的不必要浪費(環境切換)。對於 Apache 伺服器,每個請求都會有一個獨佔的背景工作執行緒,當並發數達到幾千時,就會有幾千個線程同時處理請求。這對作業系統是一個很大的挑戰:因為線程導致的記憶體佔用非常大,線程環境切換帶來的 CPU 開銷非常大,效能自然無法提高,這導致在高並發情境下效能嚴重下降。
總結:通過非同步非阻塞事件處理機制,Nginx 實現了由進程迴圈處理多個就緒事件,從而達到高並發和輕量化。
(5)Master/Worker 結構:一個 Master 進程產生一個或多個 Worker 進程。
說明:Master-Worker 設計模式主要包含兩個組件:Master 和 Worker。Master 維護 Worker 隊列,將請求發送給多個 Worker 並存執行。Worker 主要執行實際邏輯計算,並將結果返回給 Master。
Nginx 採用這種進程模型有什麼好處?使用獨立進程可以防止進程之間相互影響。一個進程退出後,其他進程仍在工作,服務不會中斷。Master 進程會快速啟動新的 Worker 進程。當然,Worker 進程的異常退出一定是由程式缺陷導致的。異常退出會導致當前 Worker 上的所有請求失敗,但不會影響所有請求,因此降低了風險。
(6)記憶體消耗小:處理大規模並發請求的記憶體消耗非常小。在3萬並發串連下,10個 Nginx 進程僅消耗150MB記憶體(15MB×10=150MB)。
(7)內建健全狀態檢查功能:如果 Nginx 代理後端的某台 Web 服務器宕機,不會影響前端訪問。
(8)節省頻寬:支援 GZIP 壓縮,可添加瀏覽器本機快取的 Header 頭部資訊。
(9)高穩定性:用於反向 Proxy時,宕機機率極低。
Nginx 配置反向 Proxy
將 Nginx 配置為反向 Proxy和負載平衡器,利用其緩衝功能將靜態頁面緩衝在 Nginx 中,減少後端伺服器串連數,並檢查後端 Web 服務器的健康情況。
wKiom1js0B-iFnITAACVfFt6894317.png-wh_50
1. 安裝 Nginx
環境:
OS:CentOS 7.2
Nginx:192.168.31.83
Apache1:192.168.31.141
Apache2:192.168.31.250
安裝 zlib-devel、pcre-devel 等依賴
[root@www ~]# yum -y install gcc gcc-c++ make libtool zlib zlib-devel pcre pcre-devel openssl openssl-devel
說明:
結合 proxy 和 upstream 模組實現後端 Web 負載平衡
利用 proxy 模組實現靜態檔案快取
結合 Nginx 預設的 ngx_http_proxy_module 模組和 ngx_http_upstream_module 模組
實現後端伺服器的健全狀態檢查,還可以使用第三方模組 nginx_upstream_check_module
使用 nginx-sticky-module 擴充模組實現 cookie 會話保持(保持會話)
使用 ngx_cache_purge 實現更強大的緩衝清除功能
上述兩個模組屬於第三方擴充模組。需要提前下載原始碼,然後在編譯時間通過 --add-module=src_path 一起安裝。

安裝 Nginx
[root@www ~]# groupadd www #添加 www 組
[root@www ~]# useradd -g www www -s /sbin/nologin #建立 Nginx 運行賬戶 www 並加入 www 組,不允許 www 使用者直接登入系統
#tar zxf nginx-1.10.2.tar.gz
#tar zxf ngx_cache_purge-2.3.tar.gz
#tar zxf master.tar.gz
# cd nginx-1.10.2/
[root@www nginx-1.10.2]# ./configure --prefix=/usr/local/nginx1.10 --user=www --group=www --with-http_stub_status_module --with-http_realip_module --with- http_ssl_module --with-http_gzip_static_module --http-client-body-temp-path=/var/tmp/nginx/client --http-proxy-temp-path=/var/tmp/nginx/proxy --http-fastcgi- temp-path=/var/tmp/nginx/fcgi --with-pcre --add-module=../ngx_cache_purge-2.3 --with-http_flv_module --add-module=../nginx-goodies-nginx-sticky -module-ng-08a395c66e42
[root@www nginx-1.10.2]# make && make install
說明:Nginx 的所有模組必須在編譯時間添加,不能在運行時動態載入。
以下介紹 Nginx 負載平衡模組支援的其他調度演算法:
輪詢(預設):每個請求按時間順序逐一分配到不同的後端伺服器。如果某台後端伺服器宕機,故障系統會被自動剔除,不會影響使用者訪問。Weight 指定輪詢權重,Weight 值越大分配到的訪問機率越高,主要用於後端各台伺服器效能不均的情況。
ip_hash:每個請求按訪問 IP 的雜湊結果分配,使來自同一 IP 的訪客訪問同一台後端伺服器,有效解決了動態網頁的 session 共用問題。當然,如果該節點不可用,會被發送到下一個節點,如果此時沒有會話同步,使用者會被登出。
least_conn:請求被發送到當前活躍串連數最少的真實伺服器。會考慮 weight 權重值。
url_hash:該方法按存取 URL 的雜湊結果分配請求,使每個 URL 指向同一個後端伺服器,可以進一步提高後端快取服務器的效率。Nginx 本身不支援 url_hash,如需使用該調度演算法,必須安裝 Nginx 的雜湊包 nginx_upstream_hash。
fair:這是一種比上述兩種更智能的負載平衡演算法。該演算法可以根據頁面大小和載入時間智慧地進行負載平衡,即根據後端伺服器的回應時間分配請求,優先分配給回應時間短的伺服器。Nginx 本身不支援 fair,如需使用該調度演算法,必須下載 Nginx 的 upstream_fair 模組。
5. 負載平衡與健全狀態檢查:
嚴格來說,Nginx 沒有對負載平衡後端節點的健全狀態檢查,但可以通過預設的 ngx_http_proxy_module 模組和 ngx_http_upstream_module 模組中的相關指令來完成。當後端節點故障時,會自動切換到下一個節點提供訪問。
weight:輪詢權重,也可用於 ip_hash,預設值為1
max_fails:允許請求失敗的次數,預設為1。超過最大次數時,返回 proxy_next_upstream 模組定義的錯誤。
fail_timeout:有兩層含義,一是在10秒內最多允許2次失敗;二是在2次失敗後的10秒內不再向該伺服器分配請求。
6. Nginx 的代理緩衝使用:
緩衝是將後端伺服器的 js、css、圖片等靜態檔案快取到 Nginx 指定的緩衝目錄中,不僅可以減輕後端伺服器的負擔,還可以加快訪問速度,但及時清理緩衝就成了問題,因此需要 ngx_cache_purge 模組在到期時間前手動清理緩衝。
proxy 模組中常用的指令是 proxy_pass 和 proxy_cache。
Nginx 的 Web 緩衝功能主要由 proxy_cache、fastcgi_cache 指令集及相關指令集完成。proxy_cache 指令負責反向 Proxy緩衝後端伺服器的靜態內容,fastcgi_cache 主要用於處理 FastCGI 動態進程緩衝。
2. 解析 Nginx 日誌
摘要:用於將內網的串連請求(如 VPN/NAT)代理到互連網。
代理服務可簡單分為正向 Proxy和反向 Proxy:
正向 Proxy:用戶端指定Proxy 伺服器,將原本打算直接發送給目標 Web 服務器的 HTTP 要求發送到Proxy 伺服器,再由Proxy 伺服器訪問 Web 服務器,並將 Web 服務器的響應返回給用戶端:
反向 Proxy:與正向 Proxy相反,如果區域網路向互連網提供資源並允許互連網上的其他使用者訪問區域網路內的資源,可以設定Proxy 伺服器,其提供的服務即為反向 Proxy。反向 Proxy伺服器接收來自互連網的串連,然後將請求轉寄到內網伺服器,並將響應返回給
請求串連的互連網用戶端:
1. Nginx 反向 Proxy:Web 服務器的調度器
1. 反向 Proxy是指Proxy 伺服器接收用戶端的串連請求,然後將請求轉寄到網路上的 Web 服務器(可能是 Apache、Nginx、Tomcat、IIS 等),並將 Web 服務器獲得的結果返回給請求串連的用戶端,Proxy 伺服器對外表現為伺服器。
從上圖可以看出:反向 Proxy伺服器代理網站 Web 服務器接收 HTTP 要求並轉寄請求。而且作為反向 Proxy伺服器,Nginx 可以根據使用者請求的內容將請求轉寄到不同的後端 Web 服務器,例如實現動靜分離,又如在 Nginx 上建立多個虛擬機器主機,使得在瀏覽器中輸入不同的網域名稱(URL)時可以順利訪問後端不同的 Web 服務器或 Web 叢集。
2. 反向 Proxy的作用是什嗎?
① 保護網站安全:來自互連網的任何請求都必須先經過Proxy 伺服器;
wKioL1jsz9yAHyulAABvTU4R-Ew435.png-wh_50
② 通過配置緩衝功能加速 Web 請求:可以緩衝真實 Web 服務器上的一些靜態資源,減輕真實 Web 服務器的負載壓力;
wKiom1jsz-nwYDqSAABjrKK3l5E661.png-wh_50
③ 實現負載平衡:充當負載平衡伺服器,均衡地分發請求,平衡叢集中各台伺服器的負載壓力;
wKiom1jsz__Q7RpoAAJQnYSWdA8640.png-wh_50
2. 什麼是 Nginx
1. Nginx 簡介
Nginx 是一款輕量級的 Web 服務器、反向 Proxy和郵件Proxy 伺服器。以穩定性、豐富的功能集、樣本設定檔和低系統資源消耗著稱。Nginx(發音同 engine x)由俄羅斯程式員 Igor Sysoev 開發,最初被俄羅斯大型門戶網站和搜尋引擎 Rambler(俄語:Рамблер)使用。該軟體採用 BSD 類許可證發布,可運行於 UNIX、GNU/Linux、BSD、Mac OS X、Solaris 和 Microsoft Windows。
Nginx 的應用現狀
Nginx 已在俄羅斯最大的門戶網站 Rambler Media(www.rambler.ru)上運行,俄羅斯超過 20% 的虛擬機器主機平台使用 Nginx 作為反向 Proxy伺服器。
在中國,淘寶、新浪微博、新浪播客、網易新聞、六間房、56.com、Discuz!、水木社區、豆瓣、YUPOO、國內、迅雷線上等眾多網站已使用 Nginx 作為 Web 服務器或反向 Proxy伺服器。
2. Nginx 的核心特性
(1)跨平台:Nginx 可在大多數作業系統上編譯運行,同時提供 Windows 版本;
(2)配置非常簡單:非常容易上手。
(3)非阻塞式高並發串連:官方測試可支援5萬並發串連,在實際生產環境中可運行2萬至3萬並發串連。(這得益於 Nginx 使用了最新的 epoll 模型);
說明:
對於 Web 服務器,首先看一個請求的基本流程:建立串連 - 接收資料 - 發送資料,從系統底層來看:上述過程(建立串連 - 接收資料 - 發送資料)在系統底層是一個讀寫事件。
如果採用阻塞調用方式:當讀寫事件未就緒時,只能等待,當前線程被掛起,直到事件就緒才能進行讀寫操作。
如果採用非阻塞調用方式:事件立即返回,告知事件尚未就緒,稍後再來。過一會兒再次檢查事件,直到事件就緒,期間可以先做其他事情,然後再回來檢查事件是否就緒。雖然不會被阻塞,但需要不時檢查事件狀態,能做更多事情,不過開銷不小。非阻塞調用意味著在結果未立即可用時,該調用不會阻塞當前線程。
(4)事件驅動:通訊機制採用 epoll 模型,支援更大的並發串連。
非阻塞通過不斷檢查事件狀態來判斷是否執行讀寫操作,帶來了很大的開銷,因此有了非同步非阻塞事件處理機制。該機制允許同時監聽多個事件,調用它們是非阻塞的,但可以設定逾時。在逾時時間內,如果某個事件就緒就會返回。該機制解決了阻塞調用和非阻塞調用的上述兩個問題。
以 epoll 模型為例:當事件未就緒時,將其放入 epoll(隊列)。如果某個事件就緒,就處理它;當事件未就緒時,在 epoll 中等待。這樣,我們就可以並發處理大量的請求。當然,這裡的並發請求指的是未處理的請求。只有一個線程,所以同一時刻當然只有一個請求能被處理。只是在請求之間不斷切換。切換也是因為非同步事件未就緒而主動放棄的。這裡的切換沒有代價,可以理解為在迴圈遍曆多個已就緒的事件。
與多線程方式相比,這種事件處理方式有很大優勢。不需要建立線程,每個請求佔用的記憶體極少。沒有環境切換。事件處理非常輕量,並發數量大也不會導致資源的不必要浪費(環境切換)。對於 Apache 伺服器,每個請求都會有一個獨佔的背景工作執行緒,當並發數達到幾千時,就會有幾千個線程同時處理請求。這對作業系統是一個很大的挑戰:因為線程導致的記憶體佔用非常大,線程環境切換帶來的 CPU 開銷非常大,效能自然無法提高,這導致在高並發情境下效能嚴重下降。
總結:通過非同步非阻塞事件處理機制,Nginx 實現了由進程迴圈處理多個就緒事件,從而達到高並發和輕量化。
(5)Master/Worker 結構:一個 Master 進程產生一個或多個 Worker 進程。
說明:Master-Worker 設計模式主要包含兩個組件:Master 和 Worker。Master 維護 Worker 隊列,將請求發送給多個 Worker 並存執行。Worker 主要執行實際邏輯計算,並將結果返回給 Master。
Nginx 採用這種進程模型有什麼好處?使用獨立進程可以防止進程之間相互影響。一個進程退出後,其他進程仍在工作,服務不會中斷。Master 進程會快速啟動新的 Worker 進程。當然,Worker 進程的異常退出一定是由程式缺陷導致的。異常退出會導致當前 Worker 上的所有請求失敗,但不會影響所有請求,因此降低了風險。
(6)記憶體消耗小:處理大規模並發請求的記憶體消耗非常小。在3萬並發串連下,10個 Nginx 進程僅消耗150MB記憶體(15MB×10=150MB)。
(7)內建健全狀態檢查功能:如果 Nginx 代理後端的某台 Web 服務器宕機,不會影響前端訪問。
(8)節省頻寬:支援 GZIP 壓縮,可添加瀏覽器本機快取的 Header 頭部資訊。
(9)高穩定性:用於反向 Proxy時,宕機機率極低。
3. Nginx+Apache 搭建 Web 服務器叢集的負載平衡
Nginx 配置反向 Proxy
將 Nginx 配置為反向 Proxy和負載平衡器,利用其緩衝功能將靜態頁面緩衝在 Nginx 中,減少後端伺服器串連數,並檢查後端 Web 服務器的健康情況。
wKiom1js0B-iFnITAACVfFt6894317.png-wh_50
1. 安裝 Nginx
環境:
OS:CentOS 7.2
Nginx:192.168.31.83
Apache1:192.168.31.141
Apache2:192.168.31.250
安裝 zlib-devel、pcre-devel 等依賴
[root@www ~]# yum -y install gcc gcc-c++ make libtool zlib zlib-devel pcre pcre-devel openssl openssl-devel
說明:
結合 proxy 和 upstream 模組實現後端 Web 負載平衡
利用 proxy 模組實現靜態檔案快取
結合 Nginx 預設的 ngx_http_proxy_module 模組和 ngx_http_upstream_module 模組
實現後端伺服器的健全狀態檢查,還可以使用第三方模組 nginx_upstream_check_module
使用 nginx-sticky-module 擴充模組實現 cookie 會話保持(保持會話)
使用 ngx_cache_purge 實現更強大的緩衝清除功能
上述兩個模組屬於第三方擴充模組。需要提前下載原始碼,然後在編譯時間通過 --add-module=src_path 一起安裝。

安裝 Nginx
[root@www ~]# groupadd www #添加 www 組
[root@www ~]# useradd -g www www -s /sbin/nologin #建立 Nginx 運行賬戶 www 並加入 www 組,不允許 www 使用者直接登入系統
#tar zxf nginx-1.10.2.tar.gz
#tar zxf ngx_cache_purge-2.3.tar.gz
#tar zxf master.tar.gz
# cd nginx-1.10.2/
[root@www nginx-1.10.2]# ./configure --prefix=/usr/local/nginx1.10 --user=www --group=www --with-http_stub_status_module --with-http_realip_module --with- http_ssl_module --with-http_gzip_static_module --http-client-body-temp-path=/var/tmp/nginx/client --http-proxy-temp-path=/var/tmp/nginx/proxy --http-fastcgi- temp-path=/var/tmp/nginx/fcgi --with-pcre --add-module=../ngx_cache_purge-2.3 --with-http_flv_module --add-module=../nginx-goodies-nginx-sticky -module-ng-08a395c66e42
[root@www nginx-1.10.2]# make && make install
說明:Nginx 的所有模組必須在編譯時間添加,不能在運行時動態載入。
4. 負載平衡的其他調度方案:
以下介紹 Nginx 負載平衡模組支援的其他調度演算法:
輪詢(預設):每個請求按時間順序逐一分配到不同的後端伺服器。如果某台後端伺服器宕機,故障系統會被自動剔除,不會影響使用者訪問。Weight 指定輪詢權重,Weight 值越大分配到的訪問機率越高,主要用於後端各台伺服器效能不均的情況。
ip_hash:每個請求按訪問 IP 的雜湊結果分配,使來自同一 IP 的訪客訪問同一台後端伺服器,有效解決了動態網頁的 session 共用問題。當然,如果該節點不可用,會被發送到下一個節點,如果此時沒有會話同步,使用者會被登出。
least_conn:請求被發送到當前活躍串連數最少的真實伺服器。會考慮 weight 權重值。
url_hash:該方法按存取 URL 的雜湊結果分配請求,使每個 URL 指向同一個後端伺服器,可以進一步提高後端快取服務器的效率。Nginx 本身不支援 url_hash,如需使用該調度演算法,必須安裝 Nginx 的雜湊包 nginx_upstream_hash。
fair:這是一種比上述兩種更智能的負載平衡演算法。該演算法可以根據頁面大小和載入時間智慧地進行負載平衡,即根據後端伺服器的回應時間分配請求,優先分配給回應時間短的伺服器。Nginx 本身不支援 fair,如需使用該調度演算法,必須下載 Nginx 的 upstream_fair 模組。
5. 負載平衡與健全狀態檢查:
嚴格來說,Nginx 沒有對負載平衡後端節點的健全狀態檢查,但可以通過預設的 ngx_http_proxy_module 模組和 ngx_http_upstream_module 模組中的相關指令來完成。當後端節點故障時,會自動切換到下一個節點提供訪問。
weight:輪詢權重,也可用於 ip_hash,預設值為1
max_fails:允許請求失敗的次數,預設為1。超過最大次數時,返回 proxy_next_upstream 模組定義的錯誤。
fail_timeout:有兩層含義,一是在10秒內最多允許2次失敗;二是在2次失敗後的10秒內不再向該伺服器分配請求。
6. Nginx 的代理緩衝使用:
緩衝是將後端伺服器的 js、css、圖片等靜態檔案快取到 Nginx 指定的緩衝目錄中,不僅可以減輕後端伺服器的負擔,還可以加快訪問速度,但及時清理緩衝就成了問題,因此需要 ngx_cache_purge 模組在到期時間前手動清理緩衝。
proxy 模組中常用的指令是 proxy_pass 和 proxy_cache。
Nginx 的 Web 緩衝功能主要由 proxy_cache、fastcgi_cache 指令集及相關指令集完成。proxy_cache 指令負責反向 Proxy緩衝後端伺服器的靜態內容,fastcgi_cache 主要用於處理 FastCGI 動態進程緩衝。
