AlmaLinuxにNginxを導入してみた

![001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3668800/3e41c95c-a86b-a15f-c0ea-926328fd35ef.png)

webサーバーと言えば「Apache」や「Nginx」が有名かと思います。

そこで今回は「Nginx」の導入方法についてご紹介いたします。


## インストールを行う

「Nginx」の導入は「dnf」を使用し導入可能です。

下記コマンドを実行しインストールを進めます。

```
dnf install nginx
```

上記を実行すると下記の様に確認画面が表示されます。

```
Last metadata expiration check: 0:00:39 ago on Thu 27 Jun 2024 11:14:23 AM JST.
Dependencies resolved.
=====================================================================================================================
 Package                          Architecture      Version                               Repository            Size
=====================================================================================================================
Installing:
 nginx                            x86_64            1:1.20.1-14.el9_2.1.alma.1            appstream             36 k
Installing dependencies:
 almalinux-logos-httpd            noarch            90.5.1-1.1.el9                        appstream             18 k
 nginx-core                       x86_64            1:1.20.1-14.el9_2.1.alma.1            appstream            565 k
 nginx-filesystem                 noarch            1:1.20.1-14.el9_2.1.alma.1            appstream            8.4 k

Transaction Summary
=====================================================================================================================
Install  4 Packages

Total download size: 627 k
Installed size: 1.8 M
Is this ok [y/N]: 
```

問題無い事を確認しインストールを進めます。

インストールが完了したら下記のコマンドを使用しインストール確認を行います。

```
dnf list nginx
```

下記の様に「nginx」が表示されていれば問題ないです!!

```
Last metadata expiration check: 0:03:57 ago on Thu 27 Jun 2024 11:14:23 AM JST.
Installed Packages
nginx.x86_64   
```

## ファイアウォール設定

次にファイヤーウォール設定を行います。

webサーバーで使用するポートは「80」「443」ポートとなります。

下記コマンドを使用しポート許可を実行致します。

```
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
```

上記設定後、反映の為にリロードを実施致します。

```
firewall-cmd --reload
```

## Nginxを起動する

次にNginxの動作を確認する為、起動します。

下記コマンドを使用し起動する事が出来ます。

```
systemctl start nginx
```

Nginxを起動するとIPアドレスでアクセスする事が出来るようになります。

IPアドレスでアクセスすると下記の様にデフォルトページが表示されます。

![nx001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3668800/d545c401-9d8a-edd7-76b4-f49699ec26f5.png)

基本的にwebを公開する場合はドメインを使用する為、設定を追加していきます。

## ドメイン設定を追加

今回は例として「example.com」ドメインを設定致します。

始めに下記にパス内に設定ファイルを作成します。

```
vi /etc/nginx/conf.d/example.conf
```

今回は例として「example.conf」を作成致しました。

次に作成したファイルに設定を記述していきます。

```
server {
    listen 80;
    server_name example.com www.example.com;

    root /var/www/example.com/html;
    index index.html;

    access_log /var/log/nginx/example_access.log;
    error_log /var/log/nginx/example_error.log;

    location / {
        try_files $uri $uri/ =404;
    }
}
```

server_nameにはドメイン名を設定します。

今回は「example.com」と「www.example.com」を指定しています。

rootではドキュメントルートパスを指定できます。

今回は「/var/www/example.com/html」として設定しました。

access_logとerror_logは各種ログの出力パスやログ名を記載します。

## ドキュメントルートの作成

続いてドキュメントルートの作成を行います。

下記コマンドを使用してディレクトリの作成を行います。

```
mkdir -p /var/www/example.com/html
```

次に上記で作成したドキュメントルートに動作確認用の「index.html」を作成します。

```
vi /var/www/example.com/html/index.html
```

今回は例として下記の様に「Hello Nginx!」と記載します。
```
Hello Nginx!
```

## 設定反映

最後にNginxを再起動し設定反映を行います。

始めにシンタックスチェックを行い設定値に問題が無いか確認します。

```
nginx -t
```

上記問題が無ければ下記コマンドにて再起動を行います。
```
systemctl restart nginx
```

## 動作確認

![nx001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3668800/af07b1b0-f7a0-7c50-2d75-73fa604f2595.png)

「example.com」のhosts設定を行いwebブラウザーでアクセスします。

上記の画像の様に設定した「Hello Nginx!」が表示されていたら成功です。