1. 程式人生 > >nginx做本地目錄映射

nginx做本地目錄映射

圖片 image 重新 con 功能 reload bcd 有時 div

  有時候需要訪問服務器上的一些靜態資源,比如掛載其他設備上的圖片到本地的目錄,而本地的目錄不在nginx根目錄下,這個時候就需要簡單的做一下目錄映射來解決,比如想通過瀏覽器http://ip/image/2016/04/29/10/abc.jpg訪問到系統目錄/image_data/2016/04/29/10/abc.jpg需要在nginx.conf中對應的server {}下添加location規則,配置如下:

        location /image/ {
            root /;
            rewrite ^/image/(.*)$ /image_data/$1 break;
        }

  location /image/設置服務器攔截含有/image/的請求,實際上範圍根據實際情況確定精確度

  root /;設定作用的根目錄,rewrite就是真正的跳轉規則,設置以image為開頭的請求跳轉到/image_data開頭的根目錄,後面的參數原封不動的添加過去,這樣就實現了目錄的映射,

  使用上面的規則可以很方便的映射到本地指定的多個用於靜態訪問的目錄

  保存之後使用 ./nginx -s reload 重新載入配置文件,訪問指定的url就訪問到了

  另外還可以靈活配置精確代理,比如代理某一個訪問路徑,比如我們訪問http://ip/abc/bcd/123.ico這時候我們映射到/web/host1/123.ico那麽可以配置如下規則:

location /abc/bcd/123.ico {
    root /;
    rewrite ^/abc/bcd/123.ico$ /web/host1/123.ico break;
}

  以上就實現了精確地路徑代理,註意後面的/web/host1屬於文件系統路徑,而不是web主機的虛擬目錄,因為上面root設置的是根目錄,如果沒有指定root那麽以前面的server塊中指定的全局root值為準,每個location塊中屬性的作用域只是這一個塊中;另外可以代理多個路徑可以通過web真實路徑訪問也可以使用代理路徑訪問,從而根據不同的業務需求設置代理,那麽nginx本身就可以實現很多實用並且好用的功能

nginx做本地目錄映射