利用Nginx的proxy_store搭建鏡像服務器

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;   //此處爲要被代理的服務器的地址
        }
    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章