前提
私にとっては毎度おなじみですが以下のような環境で実施しています。
ホスト:windows10
サーバ:CentOS7@VirtualBox
Nginx
nginx(「エンジンエックス」のように発音)は、フリーかつオープンソースなWebサーバである。処理性能・高い並行性・メモリ使用量の小ささに焦点を当てて開発されており、HTTP, HTTPS, SMTP, POP3, IMAPのリバースプロキシの機能や、ロードバランサ、HTTPキャッシュなどの機能も持つ。
私も最近まであまりしらなかったのですが、Nginxはわりと流行っているみたいです。
Webサーバと言えばApacheがありますが、いくつかの違いがあるようです。
違いをまとめた記事などは探せばいくらでも見つかると思うので、今回は自分のインストール、構築作業に集中します。
まったくの無知識で挑むよりは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 process3月 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を使用している場合のみ必要になります。
ホストポートにはホストマシンで使用されていない任意のポート番号を設定。
ゲストポートにはnginxで使用しているポート番号を設定します。
ブラウザから疎通確認
ホストマシンのブラウザから疎通確認を行います。
私の場合は以下のURL。
必要に応じてホストやポート番号は設定しなおしてください。
上記の画面が表示されれば問題はないでしょう。
自動起動の設定
サーバが起動されたときにnginxが自動起動されるように設定しておきます。
systemctl enable nginx
実用向けにいろいろ設定しだすと一気に難しくなりそうなので今回はここまで。