為什麼要做web cache,我想大家最主要的是解決流量的壓力。隨著**流量的提公升,如果只是單台機器既處理靜態檔案,又處理動態指令碼,顯然效率很難上公升,不能處理日益**的流量壓力。與此同時某些**的頁面內容並不是經常變化,因此我們可以分兩層架構來組織**。前端web快取+後端web伺服器。
前端web快取有多重方式實現,原理就是隊請求結果頁面靜態化並設定乙個超時期限,快取頁面過期後,新請求到達時重新到後端web伺服器獲取內容更新;沒有nginx前比較流行的方法是squid,但squid不能充分利用處理器的多核特性,越來越多的**選用nginx來做前端的web快取。
要想使用nginx的快取功能要保證nginx新增了proxy模組。我們可以使用-v選項(大寫的v,小寫的v是看版本號的)來檢視nginx的編譯引數。我使用的是預設的引數編譯的,如下所示:
nginx的所有模組必須在編譯的時候新增,不能再執行的時候動態載入,預設的編譯選項下包含的模組,如果你不是顯示的用引數關閉它。
nginx預設安裝的模組如下
模組名稱
描述版本
如何禁用
proxy模組中常用的指令時proxy_pass和proxy_cache.
nginx的web快取功能的主要是由proxy_cache、fastcgi_cache指令集和相關指令集完成,proxy_cache指令負責反向**快取後端伺服器的靜態內容,fastcgi_cache主要用來處理fastcgi動態程序快取(這裡我不是很清楚這兩個指令的區別,好像功能上都差不多,尤其後面這句話的意思,是我翻譯過來的)。
確認proxy模組安裝好後,下面對nginx的配置檔案進行設定,重點部分如標紅字型所示。
這是我的nginx.conf配置檔案。
}配置檔案中以proxy_開頭的指令我們大都可以字面意思得到理解。請務必注意一點proxy_cache_path和proxy_temp_path設定的目錄需要在同一分割槽,因為它們之間是硬鏈結的關係。
當我們瀏覽http://localhost:10000/222.jpg時,在**端就把快取了,不用到**終端去快取了,可以節省資源。快取的內容放在你設定的proxy_cache_path路徑下面,看下圖
第一層目錄只有乙個字元,是由levels=1:2設定,總共二層目錄,子目錄名字由二個字元組成。
我的nginx配置,針對proxy cache的
說一下,這篇文件主要是針對記錄安裝proxy cache的,順便記一下nginx.conf配置檔案,實驗環境,後端就開了乙個tomcat 1.安裝nginx 安裝完後檢視編譯引數 usr local nginx sbin nginx v 是否有以下顯示 2.修改nginx.conf配置檔案 user...
Nginx 二 nginx的安裝
使用命令 tar zxvf pcre 8.37.tar.gz 進入pcre目錄 cd pcre 8.37 執行命令 configure 掃瞄依賴建立依賴 make 安裝 make install 檢視版本 pcre config version 成功 8.37 為版本號 執行命令 yum y ins...
nginx 二 nginx的安裝
把原始碼解壓縮之後,在終端裡執行如下命令 configure make make install 預設情況下,nginx 會被安裝在 usr local nginx。通過設定編譯選項,你可以改變這個設定 乙個寫好了的編譯選項 nginx的使用比較簡單,就是幾條命令。常用到的命令如下 nginx s ...