nginx做本地目錄映射


nginx做本地目錄映射

 

  有時候需要訪問服務器上的一些靜態資源,比如掛載其他設備上的圖片到本地的目錄,而本地的目錄不在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本身就可以實現很多實用並且好用的功能


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM