NGINX static file server

Serving Static Content

Hsinhan
小萬同學的程式筆記
4 min readAug 20, 2019

--

Image Server

設定 nginx config 可讓 nginx 根據 route match 的結果對應到特定的檔案, route 的設定方式為修改 default.conf 檔案(位於 /etc/nginx/conf.d/ )。

首先建立新的一個 location 區塊如下

其意思為當進來的 request 路徑 match / 這個規則的時候,會執行此 block裡面的內容(包含轉導),nginx 會以 match 到最長的 route 來執行,言下之意,在 default.conf 檔案中可以設定多組 location 的規則,如:

這次完成的目標為,提供外部服務取得圖片的服務,實現方式則是使用 nginx 分析 request 後,根據 match 結果讀取不同檔案並回傳。

實現方式為提供一個網址,在此範例中使用:

首先在 server 上建立圖片存放路徑,如 home/images/,接著設定 location的資訊如下:

說明:

Line 1:

定義外部呼叫的時候要透過哪個路徑,這裡的寫法表示使用 service host/image/ 這個路徑表示要取得圖片

Line 5:

第一種方法,使用 root 指定上一層的檔案路徑,這裡有一個特別的地方,就是locatoin 的路徑會套用在 root 後面成為實際讀取 server的路徑,也就是root的路徑是 /home 加上 location 的 route路徑 /images 變成 home/images,一開始一直被這個搞到,要特別注意!

Line 7:

除了直接指定,也可以用 alias 的方式。跟指定 root 不同的是,實際讀取 server 的路徑是 alias 的路徑,也就是 location 的 route 路徑可以隨便你打,例如:

當 nginx 收到 requset 的存取路徑是 /image/animal/時,將自動透過 alias 自動對應到 server 實際的檔案路徑。這方法就不用暴露實際路徑位置,比較彈性。

以上設定完畢後,別忘了測試 config 的設定是否正確,儲存並退出後,記得使用下列指令測試是否正常:

測試設定正常後,可以再輸入下列指令重新讀取 config 使本次設定生效:

Ref:

https://blog.csdn.net/kjsayn/article/details/52385332

--

--