Nginx的proxy_store作用是直接把靜態文件在本地硬盤創建並讀取,類似於七牛或者又拍這樣的鏡像CDN功能,首次訪問會自動獲取源站的靜態圖片等文件,之後的訪問就是直接從CDN服務器讀取,加快了速度。
需要配置一下參數:
#啓用緩存到本地的功能
proxy_store on;
#表示用戶讀寫權限,如果在error中報路徑不允許訪問的話就用"chomod -R a+rw"將下面配置的路徑改爲相應的權限.
proxy_store_access user:rw group:rw all:rw;
#此處爲文件的緩存路徑,這個路徑是和url中的文件路徑一致的
proxy_temp_path 緩存目錄;
#在上面的配置之後,雖然文件被緩存到了本地磁盤上,但每次請求仍會向遠端拉取文件,爲了避免去遠端拉取文件,還必須增加:
if ( !-e $request_filename) {
proxy_pass http://192.168.10.10;
}
注:
"!-e $request_filename"正則表達式,匹配緩存目錄中的文件與源文件是否存在。
"http://192.168.10.10" 源服務器的地址,默認端口80,如監聽其他端口,此處要指出,例如4000端口,http://192.168.10.10:4000
整體配置如下(修改nginx的配置文件nginx.conf):
location / { //這裏的location是要換成自己經過精確匹配的location,比如要緩存圖片要寫成 "location ~*\.(gif|jpg|jepg|png|bmp)${"
expires 3d; //所有鏈接,瀏覽器緩存過期時間爲3天
proxy_set_header Accept-Encoding '';
root /home/mpeg/nginx; //此目錄爲服務器的根目錄,下面的if語句就是判斷此目錄下是否有響應的文件
proxy_store on; //表示開啓緩存
proxy_store_access user:rw group:rw all:rw;//表示用戶讀寫權限
proxy_temp_path /home/mpeg/nginx; //此處爲文件的緩存路徑,這個路徑是和url中的文件路徑一致的
if ( !-e $request_filename) {
proxy_pass http://192.168.0.1; //此處爲要被代理的服務器的地址
}
}
利用Nginx的proxy_store搭建鏡像服務器
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.