SEワンタンの独学備忘録

IT関連の独学した内容や資格試験に対する取り組みの備忘録

【Nginx】NginxをCentOS7にインストールしwebサーバ構築

前提

私にとっては毎度おなじみですが以下のような環境で実施しています。

ホスト:windows10
サーバ:CentOS7@VirtualBox

Nginx

nginx(「エンジンエックス」のように発音)は、フリーかつオープンソースなWebサーバである。処理性能・高い並行性・メモリ使用量の小ささに焦点を当てて開発されており、HTTP, HTTPS, SMTP, POP3, IMAPのリバースプロキシの機能や、ロードバランサ、HTTPキャッシュなどの機能も持つ。

引用元:nginx - Wikipedia


私も最近まであまりしらなかったのですが、Nginxはわりと流行っているみたいです。
Webサーバと言えばApacheがありますが、いくつかの違いがあるようです。
違いをまとめた記事などは探せばいくらでも見つかると思うので、今回は自分のインストール、構築作業に集中します。

参考:ApacheとNginxについて比較 - Qiita

まったくの無知識で挑むよりはApacheについての知識があると比較しながら行えるので多少はやりやすいんじゃないかと思います。

Nginxのインストール

インストール手順は原則は公式サイトの手順に従います。

公式サイト:nginx: Linux packages

リポジトリの追加

最新版をインストールするためにリポジトリに追加を行ってインストールを行います。

vim /etc/yum.repos.d/nginx.repo

vimでリポジトリファイルを作成してそのまま以下の内容を記述します。

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
インストール

インストールはいつも通りyumのインストールコマンドを実行します。
基本はこれだけ。

yum install -y nginx

バージョン確認。インストールが完了したら一応バージョン確認によりインストールが正常に完了していることを確認しておく。

nginx -v

・出力結果例

nginx version: nginx/1.16.1

Nginxの動作確認

事前に

勉強用の個人環境で作業を行っている場合はすでにApache等がインストールされている可能性もあるので起動しているか確認して必要に応じて停止しておきましょう。

使用ポートがぶつかって起動できない可能性などがあります。

起動

本格的に使用をするにあたっては各種設定を行う必要がありますがひとまずは簡単に動作確認だけしてしまいます。

・起動コマンド

systemctl start nginx

エラーがでなければ大丈夫でしょう。
一応サービスのステータスだけ確認しておきます。

systemctl status nginx

● nginx.service - nginx - high performance web server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Active: active (running) since 日 2020-03-29 22:55:26 JST; 1min 50s ago
Docs: http://nginx.org/en/docs/
Process: 4583 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
Main PID: 4585 (nginx)
Tasks: 2
CGroup: /system.slice/nginx.service
tq4585 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
mq4587 nginx: worker process

3月 29 22:55:26 localhost.localdomain systemd[1]: Starting nginx - high performance web server...
3月 29 22:55:26 localhost.localdomain systemd[1]: Failed to parse PID from file /var/run/nginx.pid: Invalid argument
3月 29 22:55:26 localhost.localdomain systemd[1]: Started nginx - high performance web server.

Active: active (running) 」が表示されていれば問題ないでしょう。

ファイアウォールの設定

http接続が許可されていない場合はファイアウォールの設定を行う必要があります。
既にされている場合は不要です。

・ファイルウォール許可サービス一覧の確認

firewall-cmd --list-services --zone=public --permanent

・サービスの登録
※またはポート番号でも問題ないはずです。

firewall-cmd --add-service=http --zone=public --permanent

・ファイアウォールのリロード
登録を行ってすぐに設定を反映させる場合にはリロードを行っておきます。

firewall-cmd --reload
ポートフォワーディング設定

VirtualBoxを使用している場合のみ必要になります。

f:id:wantanBlog:20200329233156p:plain

ホストポートにはホストマシンで使用されていない任意のポート番号を設定。
ゲストポートにはnginxで使用しているポート番号を設定します。

ブラウザから疎通確認

ホストマシンのブラウザから疎通確認を行います。
私の場合は以下のURL。
必要に応じてホストやポート番号は設定しなおしてください。

http://localhost:8080/

f:id:wantanBlog:20200331211252p:plain

上記の画面が表示されれば問題はないでしょう。

自動起動の設定

サーバが起動されたときにnginxが自動起動されるように設定しておきます。

systemctl enable nginx


実用向けにいろいろ設定しだすと一気に難しくなりそうなので今回はここまで。