Nginx(エンジンエックス)とは
Nginx(エンジンエックス)は、2004年10月に最初のバージョンがリリースされたオープンソースのWebサーバーです。Webサーバーと言えばApacheが有名で最も多く利用されていますが、最近はこのNginxが処理速度や機能面で注目されておりシェアを伸ばしています。
Nginxの特徴としては、Apacheが同時アクセス・複数アクセスに対して1つずつ処理を行うのに対し、Nginxは同時アクセス・複数アクセスを1つの対応に纏めて処理することで特に静的コンテンツを高速に処理する能力に優れています。その結果、アクセスが急増した場合でもサーバーへの負荷が高まりにくく、サーバーがダウンせずに処理速度を維持できるという特徴があります。
一方で、大量の動的コンテンツの配信はApacheの方が得意としているので、動画中心のWebサイトを構築する場合はApacheを用いる方が良いようです。また、Nginxは機能が豊富でシェアも伸びているものの、日本語で読める設定方法などの情報はApacheの方が多いようです。
今回、私自身もNginxを扱うのは初めてなのですが、Nginxについて書かれている様々なWebサイトを参考にしながらRaspberry pi4にNginxをインストールしてみたいと思います。
Nginxのインストール
NginxをUbuntu Server 20.10にインストール
Ubuntu Server 20.10をインストールしたRaspberry pi4にNginxをインストールするには以下のコマンドを用います。
$ sudo apt install nginx
Nginxのファイアウォールの設定
NginxをインストールするとUbuntu ServerのファイアウォールであるufwにNginx用のプロファイルが登録されます。以下のコマンドでufwに登録されているアプリケーション用のプロファイルを確認します。
$ sudo ufw app list
Ubuntu Serverにインストールしているアプリケーションにもよりますが、以下のように一覧が表示されると思います(Ubuntu Serverの言語設定によって先頭のメッセージが日本語になっていますが、英語設定の場合は「Available applications:」となります)。
利用可能なアプリケーション:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
Nginx用に3つのファイアウォールのプロファイルが登録されていますが、それぞれ以下の目的で使用されます。
- Nginx Full:HTTP用のポート80とHTTPS用のポート443の両方を開きます。
- Nginx HTTP:HTTP用のポート80のみを開きます。
- Nginx HTTPS:HTTPS用のポート443のみを開きます。
構築するWebサイトがHTTP(暗号化されていない通信を行う)に対応させるのか、HTTPS(暗号化された通信を行うか)に対応させるのかによってプロファイルを使い分ければよいのですが、以下のコマンドで必要なプロファイルを有効にします。
$ sudo ufw allow ‘Nginx Full’
Ubuntu Serverのファイアウォールを有効にするには以下のコマンドを用います。ターミナルソフトからSSH接続してUbuntu Serverを使用している場合は、尚、ファイアウォールを有効にする前に「OpenSSH」のプロファイル(ポート22)も有効にしておいて下さい。
$ sudo ufw enable
ファイアウォールの設定状況を確認するには以下のコマンドを用います。設定したプロファイルが「ALLOW」となっていればOKです。
$ sudo ufw status
Nginxの状態を確認
インストールしたNginxの状態を以下のコマンドで確認しましょう。入力後に「Active: active (running)」と表示されれば、Nginxは稼働しています。
$ systemctl status nginx
更にブラウザで「http://サーバーのIPアドレス」を入力すると、以下のようにNginxのデフォルトページが表示され、Nginxの稼働をブラウザ上でも確認することができます。
Ubuntu Server上のNginxに対するその他のコマンド
最後にサーバー上で稼働しているNginxを操作するためのコマンドをいくつか紹介します。
Nginxのサービス開始
$ sudo systemctl start nginx
Nginxのサービス停止
$ sudo systemctl stop nginx
停止したNginxのサービス再スタート
$ sudo systemctl restart nginx
設定変更時にNginxに設定を適用
$ sudo systemctl reload nginx
サーバー起動時にNginxのサービスを自動的に開始する
$ sudo systemctl enable nginx
サーバー自動時にNginxのサービスを自動的に開始しない
$ sudo systemctl disable nginx
おわりに
これでRaspberry pi4上のUbuntu Server 20.10にNginxをインストールしてWebサーバーとして稼働させることができました。次回以降、Nginxに色々と設定を行う方法や、PHP、Maria DBを合わせてWordpressのインストールなどもやっていきたいと思います。
それでは、また!!