メインコンテンツに移動

先日、Oracle CloudでCentOS8のインスタンスを作成しました。
https://minokamo.tokyo/2021/02/02/3305/
本日は、WebサーバーのNGINXをインストールします。
公式サイトのリポジトリを使用してインストールします。
https://nginx.org/en/linux_packages.html

/etc/yum.repos.dというディレクトリにnginx.repoというファイルを作成して、下記の内容を記述します。CentOS8でもyum関連のディレクトリがあります。

sudo vi /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

メインラインのNGINXパッケージを使用するのでコマンド入力をします。

sudo yum-config-manager --enable nginx-mainline

それではNGINXをインストールしましょう。

sudo dnf install nginx

NGINXの状態を確認します。インストール後は起動してないようです。起動して、さらに再起動後にも自動で起動するようにします。

sudo systemctl status nginx
sudo systemctl start nginx
sudo systemctl enable nginx

次にNGINXの設定ファイルを確認します。

cat /etc/nginx/nginx.conf

記述に「include /etc/nginx/conf.d/*.conf;」というものがあり、指定したディレクトリにある.confをインクルードしなさいということです。

このディレクトリに切り替えます。

cd /etc/nginx/conf.d

そこに「default.conf」というファイルがあるので中身を確認してみます。

cat default.conf

ドキュメントルートが/usr/share/nginx/htmlになっていることを確認しました。

違うリポジトリでインストールするとドキュメントルートのディレクトリは違います。以前、これによりNGINXをアップグレードしたときに設定が変わってしまい、記述しなおした覚えがあります。

今度はブラウザでサンプルページを表示するためにファイヤーウォールの設定を確認します。
まずはOracle Cloudのセキュリティリストで外部からアクセスできるようにポートの開放をします。仮想クラウドネットワークから進みます。http(80)とhttps(443)を追加して通信可能にします。
httpsについてはSSLを今後使用するかもしれないので追加しました。

CentOS自体にインストール済みであるファイアーウォール(Firewalld)で状態を確認します。こちらは特に意識していませんでしたが起動していました。どのサービスとポート番号が初期値になっているかも確認します。

sudo systemctl status firewalld
sudo firewall-cmd --zone=public --list-services
sudo firewall-cmd --zone=public --list-port

こちらでもブラウザによるアクセスを受け入れるため、httpとhttpsを許可します。

sudo firewall-cmd --add-service=http --zone=public --permanent
sudo firewall-cmd --add-service=https --zone=public --permanent
sudo firewall-cmd --reload

ここまで設定方法に間違いが無ければNGINXのサンプルページを確認できるはずです。