らくがきちょう

なんとなく ~所属組織/団体とは無関係であり、個人の見解です~

Rocky Linux に Nginx を公式リポジトリからインストールする

Rocky LinuxNginx をインストールする手順をメモしておきます。 基本的には CentOS へ Nginx をインストールする手順と同じです。 今回は Rocky Linux 8.4 に Nginx 1.20.1 をインストールします。

Nginx 公式リポジトリを追加する

Rocky Linux 標準リポジトリにも Nginx は存在するのですが、1.14.1 と古いバージョンしかありません。

# dnf info nginx
Last metadata expiration check: 2:35:05 ago on Tue 12 Oct 2021 06:04:21 AM JST.
Available Packages
Name         : nginx
Epoch        : 1
Version      : 1.14.1
Release      : 9.module+el8.4.0+542+81547229
Architecture : x86_64
Size         : 566 k
Source       : nginx-1.14.1-9.module+el8.4.0+542+81547229.src.rpm
Repository   : appstream
Summary      : A high performance web server and reverse proxy server
URL          : http://nginx.org/
License      : BSD
Description  : Nginx is a web server and a reverse proxy server for HTTP, SMTP, POP3 and
             : IMAP protocols, with a strong focus on high concurrency, performance and low
             : memory usage.

そこで Installation instructions の RHEL/CentOS 記載の手順 に従い、Nginx インストール用のリポジトリを追加します。

cat << 'EOF' > /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF

リポジトリの情報をアップデートします。

dnf check-update

Nginx をインストールする

インストール可能な Nginx のバージョンを確認したところ、1.20.1 でした。

# dnf info nginx
Last metadata expiration check: 0:00:17 ago on Tue 12 Oct 2021 08:50:33 AM JST.
Available Packages
Name         : nginx
Epoch        : 1
Version      : 1.20.1
Release      : 1.el8.ngx
Architecture : x86_64
Size         : 819 k
Source       : nginx-1.20.1-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.

インストールします。

dnf install -y nginx

インストールした Nginx を起動しつつ、自動起動の設定を実施しておきます。

systemctl start nginx
systemctl enable nginx

ドキュメントルートを変更する (リンクを追加する)

デフォルトでは /usr/share/nginx/html がドキュメントルートに設定されています。 これは /etc/nginx/conf.d/default.conf に定義されています。

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.conflocation 設定を修正しても良いですが、リンクを作成しても良いと思います。 以下ではシンボリックリンクを設定しています。

mkdir -p /var/www/
ln -s /usr/share/nginx/html /var/www/html

ディレクトリの一覧を表示する

所謂、DirectoryIndex を表示するには /etc/nginx/conf.d/default.conf を以下のように変更します。

変更前

server {
    listen       80;
    server_name  localhost;
    ・
    ・
    ・

変更後

server {
    listen       80;
    server_name  localhost;

    autoindex            on;
    autoindex_exact_size off;
    autoindex_localtime  on;
    ・
    ・
    ・

設定は各々、以下の意味を持ちます。

設定項目 意味
autoindex on ファイル一覧を表示する
autoindex_exact_size off KB, MB, GB などで大凡のファイルサイズを表示する (on の場合は Byte で正確に表示する)
autoindex_localtime on ファイルの更新日時をローカル時間に合わせて表示する