Nginx で Fancy Index を有効化し、DirectoryIndex 表示を改善する
Nginx へ Fancy Index をインストールし、Directory Index 画面の見栄えを改善してみました。 Rocky Linux8 で作業した際の手順をメモしておきます。
Fancy Index のダウンロード
Nginx 用の Fancy Index ですが、RPM 化したパッケージが下記で公開されています。 但し、必ずしも最新の Nginx バージョンに追従しているわけでは無い ようですのでバージョン管理には要注意です。
(Nginx 用の) Fancy Index モジュールは当然ですが Nginx へ依存性がある為、Nginx のリポジトリを追加し、その上で Fancy Index をインストールします。
| dnf config-manager --add-repo https://s3.sig9.org/repos/nginx.repo
dnf -y install https://github.com/jfut/nginx-module-fancyindex-rpm/releases/download/v0.5.2-1/nginx-module-fancyindex-0.5.2-1.module_el8.1.20.x86_64.rpm
|
今回は以下のバージョンがインストールされました。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 | # dnf info nginx nginx-module-fancyindex
Last metadata expiration check: 0:00:27 ago on Sun Dec 12 11:06:07 2021.
Installed Packages
Name : nginx-module-fancyindex
Version : 0.5.2
Release : 1.module_el8.1.20
Architecture : x86_64
Size : 50 k
Source : nginx-module-fancyindex-0.5.2-1.module_el8.1.20.src.rpm
Repository : @System
From repo : @commandline
Summary : Nginx module to use PAM for simple http authentication
URL : https://github.com/sto/ngx_http_fancyindex_module
License : BSD-2-Clause
Description : Nginx module to use PAM for simple http authentication.
Name : nginx
Epoch : 1
Version : 1.20.0
Release : 1.el8.ngx
Architecture : x86_64
Size : 2.8 M
Source : nginx-1.20.0-1.el8.ngx.src.rpm
Repository : @System
From repo : nginx-stable
Summary : High performance web server
URL : https://nginx.org/
License : 2-clause BSD-like license
Description : nginx [engine x] is an HTTP and reverse proxy server, as well as
: a mail proxy server.
Available Packages
Name : nginx
Epoch : 1
Version : 1.20.2
Release : 1.el8.ngx
Architecture : x86_64
Size : 820 k
Source : nginx-1.20.2-1.el8.ngx.src.rpm
Repository : nginx-stable
Summary : High performance web server
URL : https://nginx.org/
License : 2-clause BSD-like license
Description : nginx [engine x] is an HTTP and reverse proxy server, as well as
: a mail proxy server.
|
Fancy Index モジュールのロード
/etc/nginx/nginx.conf
を下記のように変更し、Fancy Index モジュールをロードします。
変更前
| user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
・
・
・
|
変更後
| user nginx;
worker_processes auto;
load_module "modules/ngx_http_fancyindex_module.so";
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
・
・
・
|
ドキュメントルートを変更する (リンクを追加する)
Rocky Linux に Nginx を公式リポジトリからインストールする
からの再掲です。 デフォルトでは /usr/share/nginx/html
がドキュメントルートに設定されています。 これは /etc/nginx/conf.d/default.conf
で定義されています。
1
2
3
4
5
6
7
8
9
10
11
12
13 | server {
listen 80;
server_name localhost;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
・
・
・
|
Apache に揃えてドキュメントルートを /var/www/html
にしたい場合は /etc/nginx/conf.d/default.conf
の location
設定を修正しても良いですが、リンクを作成しても良いと思います。 以下ではシンボリックリンクを設定しています。
| mkdir -p /var/www/
ln -s /usr/share/nginx/html /var/www/html
|
Fancy Index の設定
Fancy Index を有効化する為に /etc/nginx/conf.d/default.conf
を以下のように変更します。
変更前
| server {
listen 80;
server_name localhost;
・
・
・
|
変更後
| server {
listen 80;
server_name localhost;
fancyindex on;
fancyindex_exact_size on;
fancyindex_localtime on;
・
・
・
|
デフォルトの index.html を削除する
Nginx をインストールした直後はドキュメントルート直下に 50x.html
と index.html
が保存されます。 これは Nginx のアップグレード / ダウングレードなどが発生した場合も再度、保存されると思われます。
| # ls /usr/share/nginx/html/
50x.html index.html
|
今回は index.html
を利用しないので削除しておきます。
| rm -f /usr/share/nginx/html/index.html
|
Nginx を起動する
設定が完了したので Nginx を起動します。
| systemctl start nginx.service
systemctl enable nginx.service
|
DirectoryIndex を表示する
「Nginx 標準の autoindex」と「Fancy Index」を比較してみます。
Nginx 標準の autoindex
下記は Nginx 標準の autoindex です。
Fancy Index
下記は Fancy Index です。