nginx では、特定のディレクトリに index.html ファイルがない場合、デフォルトで 404 Not Found エラーが返されます。
しかし、Nginx の自動インデックスモジュールである ngx_http_autoindex_module モジュールは、リストを自動生成する方法を提供しており、自動インデックスを簡単に追加することができます。autoindex on を使用します。以下の設定では、特定のリクエストにアクセスするとディレクトリの構造が返されます。
公式リファレンス: http://nginx.org/en/docs/http/ngx_http_autoindex_module.html
server {
listen 80;
... ...
location /index_dir {
autoindex on;
}
}
自動インデックスを単純にオンまたはオフにするだけでなく、次のような他の設定も行うことができます:
autoindex_exact_size; 出力されるファイルの正確なサイズを表示するか、最も近いKB、MB、またはGBを表示するかを指定します。デフォルトはonで、ファイルの正確なサイズ(単位はバイト)が表示されます。offに変更すると、ファイルのおおよそのサイズ(単位はkB、MB、またはGB)が表示されます。
autoindex_format; このディレクティブは、Nginxのインデックスリストがどの形式で出力されるかを指定します。このディレクティブには4つのオプションがあります:html/xml/json/jsonp。
autoindex_localtime; 表示されるファイルの時間がGMT時間であるかどうかを指定します。注意:onに変更すると、表示されるファイルの時間はファイルのサーバー時間になります。
これらの設定を使用すると、次のような設定内容になります:
location /index_dir/ {
root /data/index_dir/;
autoindex on;
autoindex_exact_size off;
autoindex_format html;
autoindex_localtime on;
}
もしディレクトリ名に日本語が含まれている場合、文字化けの問題が発生するため、以下の行を追加する必要があります:
charset utf-8;
または
charset utf-8,gbk;