初めに #
Webサーバーといえば、代表的なものとして「Apache」や「Nginx」がよく知られています。
特に Nginx は高速・高機能で人気のあるWebサーバーソフトウェアの1つです。
Nginxは、少ないメモリ消費(軽量)で動作し、大量の同時アクセスを高速に処理することができます。
また、大規模なサイトでの負荷分散(ロードバランシング)や、画像などの静的コンテンツを素早く配信する目的でも広く使われています。
ここでは AlmaLinux 環境への Nginx インストール手順を、初心者向けにわかりやすく紹介します。
本記事の手順は AlmaLinux 9 を例にしていますが、基本的に同じRed Hat系のOSであれば同様の手順で導入が可能です。
1.Nginxのインストール #
AlmaLinuxでは、Nginx が標準リポジトリにで提供されているため、dnf パッケージマネージャーを利用し簡単にインストールする事ができます。
初めに下記コマンドを実行しインストールを行います。
dnf install nginx
上記コマンドを実行すると、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]:
インストール内容に問題がなければ、上記の確認で y を入力し処理を続行してください。
しばらくすると必要なパッケージがダウンロード・展開され、Nginxのインストールが完了します。
インストール完了後、次のコマンドで Nginx パッケージが正しく導入されたか確認できます。
dnf list nginx
以下のようにインストール済みパッケージ一覧に nginx が表示されていれば、Nginxのインストール成功です。
Installed Packages
nginx.x86_64
2.ファイアウォールの設定 #
次に、ファイアウォールの設定を行います。
NginxはWebサーバーとして 80番ポート(HTTP) および 443番ポート(HTTPS) を使用します。
今回は firewalld を利用し上記ポートを許可します。
以下は firewalld にて HTTP および HTTPS サービスの通信を許可するコマンドとなります。
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
設定を追加した後は、ファイアウォールに変更を反映させるため、リロードを実行する必要があります。
firewall-cmd --reload
これでNginxが使用する80番・443番ポートの通信が許可されました。
3.Nginxの起動 #
インストールとポート開放の準備が完了したら、実際に Nginxサーバーを起動し動作を確認する事ができます。
以下のように systemctl コマンドを実行することでNginxサービスを起動できます。
systemctl start nginx
Nginxを起動した後に、サーバーのIPアドレスにブラウザでアクセスすることでデフォルトのテストページが表示されるようになります。
サーバー起動時にNginxを自動で開始したい場合は、次のコマンドでサービスの自動起動を有効化することができます。
systemctl enable nginx
4.ドメイン設定を追加 #
基本的にwebサービスを公開する場合はIPアドレスではなくドメインを使用します。
ドメインの設定には1つのサーバーで複数のドメインを区別して処理できるようにする仮想ホスト(サーバーブロック)機能を利用します。
今回は例として「example.com」ドメインを設定する手順を紹介します。
まず、Nginxの設定ディレクトリに新しい設定ファイルを作成します。
ファイル名は任意の名前で設定が可能です。
今回は分かりやすいように example.conf として作成します。
vi /etc/nginx/conf.d/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 |
公開するコンテンツ(Webサイトファイル)を配置するドキュメントルートのパスです。 本記事では /var/www/example.com/html ディレクトリを指定しています。 |
index |
ディレクトリアクセス時にデフォルトで表示するファイルを指定します。 ここでは index.html を指定しています。 |
access_log, error_log |
各種アクセスログとエラーログの出力先ファイルを指定しています 仮想ホスト単位で確認できるよう、それぞれ別ファイルに記録する設定です。 |
location / { ... } |
ルートパス (/) に対するリクエストの挙動を定義しています。 try_files ディレクティブにより、リクエストされたパスに該当するファイルが存在しなければ自動的に404エラーを返すシンプルな設定になっています。 |
5.ドキュメントルートの作成 #
次に、先ほど設定ファイルで指定した ドキュメントルートディレクトリ を作成します。
以下のように mkdir コマンドでディレクトリを新規作成しましょう。
-pオプションを指定することにより親ディレクトリが存在しない場合でも再起的に作成するようになっています。
mkdir -p /var/www/example.com/html
続いて、その直下に動作確認用の index.html ファイルを用意します。
vi /var/www/example.com/html/index.html
今回は例として 「Hello Nginx!」を記載します。
これが実際にブラウザで表示されるコンテンツになります。
Hello Nginx!
6.設定の反映 #
Nginxの設定ファイルを変更・追加した後は、設定の反映(サービス再起動) を行います。
その前に、編集した設定に誤りがないか(シンタックスチェック)を以下のコマンドで確認することができます。
nginx -t
上記コマンドを実行し、syntax is ok と表示されれば設定内容に問題ありません。
エラーが出た場合は、そのメッセージを元に設定ファイルを見直してください。
問題がなければ、次のコマンドで Nginx を再起動して新しい設定を読み込ませます。
systemctl reload nginx
以上で、ドメイン設定を含めたNginxの構成が反映されました。
7.動作確認 #
最後に、設定したドメイン名でWebページにアクセスできるか確認します。
今回は例ドメイン(example.com)を使用しているため、クライアントPC側で hosts 設定を行い、example.com を名前解決できるようにしておきます。
その上でブラウザから http://example.com/ にアクセスしてみましょう。
正しく設定ができていれば、上記の画像のように先ほど作成した 「Hello Nginx!」 というメッセージがブラウザに表示されるはずです。