Nginx是一個免費開源且穩定高效的Web伺服器程式,有時會被用作檔案伺服器,透過HTTP提供靜態檔案給客戶端。Nginx自帶的檔案伺服器功能,可以利用網址中的路徑來直接對應伺服器的檔案系統的路徑,對於檔案系統中的目錄,Nginx甚至可以自動產生出網頁來顯示該目錄底下的文件列表。只不過基於安全性的考量,Nginx預設並未開啟這項產生檔案索引網頁的功能,如果要使用就必須手動調整Nginx的設定檔。
如下圖,預設的Nginx伺服器,在透過網址來瀏覽檔案系統中的目錄時,並不會直接把該目錄底下的所有檔案列出來,而是會回應HTTP的403狀態(Forbidden)。
Nginx的ngx_http_autoindex_module模組
「ngx_http_autoindex_module」是Nginx預設啟用的模組,可以用來產生出檔案系統的目錄底下的檔案清單網頁。使用「ngx_http_autoindex_module」模組時,需要在Nginx設定檔中的http
區塊或是其底下的server
或location
區塊中,使用autoindex
命令來開啟「autoindex」的功能。命令如下:
autoindex on;
套用設定之後,Nginx伺服器就會產生出目錄的檔案清單網頁了!
我們還可以使用autoindex_exact_size
命令,來調整檔案大小的顯示單位。預設的autoindex_exact_size
為on
,也就是讓檔案大小以byte
來顯示,如果要讓它自動以KB
、MB
或是GB
等適當的單位來顯示的話。命令如下:
autoindex_exact_size off;
將autoindex_exact_size
設為off
,檔案大小的顯示方式就會變得比較平易近人。
至於檔案清單上顯示的時間,是指檔案的修改時間,預設的時區為+0。如果要使用伺服器設定的時區,那就使用autoindex_localtime
命令,將autoindex_localtime
設為on
吧!如下:
autoindex_localtime on;
如果要替目錄的檔案清單網頁加上帳號密碼來保護,可以參考這篇文章: