nignxはいわゆるWebサーバで、HTTPで接続してきた他のPCにそのリクエストにあったページを返してあげる役割を持っています。
Webサイトを公開する、ブラウザでアクセスするようなアプリケーションを起動させるためには必要となります。
有名なWebサーバには他にもApacheというWebサーバがあります。
Apacheは単体で一般的なWebサーバの役割だけでなくプログラムを実行したりといったWebサイトやWebアプリを表示する上で必要なことを大抵まかなえます。
代わりに遅い上に、たくさん(具体的には約1万台から)同時に接続されるとどれほど良いサーバを使っても遅くなってしまいます。(C10K問題)
Nginxは自身ではプログラムを動かすことは出来ないので、ほとんどのことは他の所に任せます。Nginxが出来るのは静的なページを返してあげることと、他の所にリクエストを転送するだけです。
代わりに早いですし、Apacheのように大量にアクセスされたら必ず遅くなるという問題は存在しません。当然サーバの許容量を超えたアクセスがあれば遅くなりますけれど。
上述の通りNginxは単体ではPHP等のプログラムを動かせないため、これらを動かすためのプログラムを別途入れる必要があります。
とりあえず、今回はNginxをインストールして、静的なページが見れることを確認します。
この記事で行うこと
- Nginxのインストール
- EPELリポジトリからインストール
- Nginxの公式リポジトリからインストール
- Nginxの起動と自動起動の設定
- ファイアウォールのポート開放
- サンプルページの表示
1. Nginxのインストール
CentOS8の公式リポジトリ内にもnginxは存在しています。
公式リポジトリのnginxをインストールする場合は何の捻りもなく、以下のコマンドでインストールできます。
[root@localhost ~]# dnf install nginx
しかし、これでインストールできるnginxのバージョンは1.14となります。
現在の最新のバージョンは1.18なので、多少古い物となります。
(どちらも記事執筆時点です)
このため、以下のどちらかの方法で最新の1.18をインストールしたいと思います。
1-1. EPELリポジトリからインストール
EPELリポジトリからのインストールではある程度CentOS8で使えることが保証できる点がメリットとなります。
また、PHPを使う時に使える基本的な設定ファイルが用意されているのもメリットです。(逆に余計な物が付いてくるという考え方も無いではないですが……)
何より、リポジトリファイルを作る必要が無く dnf
だけで事が済むので楽です。
まず、EPELリポジトリをインストールします。
[root@localhost ~]# dnf install epel-release
リポジトリについては以下を参照してください。
次にEPELリポジトリ内のモジュールを選択してnginxをインストールすれば完了です。
[root@localhost ~]# dnf module install nginx:mainline/common
モジュールについては以下のページを参照してください。
1-2. nginxの公式リポジトリからインストール
公式リポジトリからのインストールからは常に最新のバージョンを使い続けることが出来ます。
まず、dnfのリポジトリファイルを作成します。リポジトリファイルの作成については以下のページで解説しています。
nginxの公式ページに作成するリポジトリファイルの中身が書かれているので、その通りにファイルを作成します。
nginxの公式ページではファイル名の指定もありますが、保存するディレクトリと拡張子さえ間違えなければ実際のところファイル名は何でも構いません。
[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
これは記事執筆時点の内容なので直接nginxの公式ページで確認するようにしてください。
あとは、通常と同じようにnginxをインストールすることでnginxの公式リポジトリからnginxをインストールすることが出来ます。
[root@localhost ~]# dnf install nginx
2. Nginxの起動と自動起動の設定
nginxをインストールしたら次は起動を行いましょう。
起動はSSHと同様になります。
以下のコマンドを実行します。
[root@localhost ~]# systemctl enable --now nginx
--now
:enable
コマンドを使うときに設定することで、start
も同時に実行されるというオプションです。
3. ファイアウォールのポート開放
Webサーバが存在してもファイアウォールでHTTP接続が禁止されていれば接続することが出来ません。
ファイアウォールでHTTP接続が出来るようにポートを開放します。
以下のコマンドを入力します。
[root@localhost ~]# firewall-cmd --add-service=http --permanent
[root@localhost ~]# firewall-cmd --reload
4. サンプルページの表示
ブラウザを使って、サーバに接続してみます。
ブラウザのアドレスバーにサーバのIPアドレスを入れてみてください。
以下のような画面が表示されたらインストール成功となります。
まとめ
今回はnginxのインストールについて説明しました。
このままの状態では静的なページの表示でしか使えず、またページが暗号化されていないためセキュリティも脆弱です。
次回以降にnginxを実際に使えるようにするための設定を一つ一つ解説していきたいと思います。