CentOS7にNginxをインストールする方法を解説

Nginx(エンジンエックス)は、オープンソースのWebサーバーで、Apache HTTP Serverに次ぐ人気を誇っています。

軽量かつ高速に動作するようパフォーマンスに特化していますが、最低限の機能は提供されています。

本記事では、CentOS環境にNginxをインストールし、設定を行うまでの手順を紹介します

Ngixの導入を検討している方は、ぜひ本記事の手順に沿ってCentOS7にインストールし、実際に使ってみてください。

Nginx(エンジンエックス)については以下の記事で詳しく解説しています。

CentOSをインストールしたばかりの方は、こちらの記事もご参照ください。

CentOS LinuxVPSで利用するなら
ミライサーバー

\ 2週間無料でお試しできます! /
VPSを使ってみる

Nginxインストールのための事前準備

前提条件

今回は、仮想マシン上にCentOSおよびNginxを構築します。

仮想マシンのスペックは以下のとおりです。

    • CPU:2vCPU
    • Memory:4GB
    • Disk:50GB

CentOSおよびNginxは以下のバージョンを利用しています。

    • CentOSのバージョン:CentOS Linux release 7.9.2009(Core)
    • Nginxのバージョン:Nginx 1.24.0

また、コマンドの標記については、実際に入力するコマンドを太字、補足の内容を青字で記載しています。

一般ユーザーをwheelグループに登録

CentOSにNginxをインストールするには、管理者権限が必要です。

rootユーザーアカウントに直接ログインして使用するのは、セキュリティ上リスクがあるため、管理者権限への実行を許可する一般ユーザーをwheelグループに追加します。

以下のコマンドでは、rootユーザーで一般ユーザー(以下の例では、testuser)をwheelグループに追加しています。

# usermod -G wheel testuser

今後、管理者権限を使用する場合は、rootユーザーでログインするのではなく一般ユーザーから、必要に応じてsuコマンドでrootユーザーに切り替えた上で実行するようにしましょう。

rootユーザーに切り替えるには、suコマンドを実行します。

$ su –
パスワード: ※rootユーザーのパスワードを入力
#  ※rootユーザーになった

SELinuxの無効化

CentOSには、システムにアクセスできるユーザーを制御するセキュリティ機能「SELinux」が標準で有効になっています。

しかし、この機能が有効になっていると、Nginxに予期せぬ影響を及ぼしてしまう可能性があります。

そのため、事前にSELinuxを無効化しておきます。

SELinuxが有効になっているかどうかは、以下のコマンドで確認できます。

# getenforce
Enforcing ※SELinux有効

もし有効になっていれば、無効化しておきましょう。

SELinuxを無効化するには、設定ファイル「/etc/selinux/config」の内容を修正します。

# vi /etc/selinux/config

 

【変更前】

SELINUX=enforcing

【変更後】

SELINUX=disabled

設定ファイルを修正後、設定を有効にするため、CentOSを再起動します。

※注意

この設定変更はスペルミス等がないよう、十分に注意してください。

設定を間違えた場合、CentOSが起動しなくなる可能性があります。

 

CentOSが起動したら、SELinuxが無効化されていることを確認します。

# getenforce
Disabled ※SELinux無効

ファイアウォールの設定変更

CentOS 7から、ファイアウォール機能として「firewalld」が標準で有効になっています。

デフォルトでは「public」ゾーンが割り当てられていますが、http/httpsは通信が許可されていないため、このままではNginxをインストールしても通信を行うことができません。

publicゾーンの設定を確認するには、以下のコマンドを実行します。

# firewall-cmd –(-は2回重ねる)list-all

上記例だと、「dhcpv6-client」「ssh」の2つのみが許可されています。

Nginxを動かすために、事前に「http」を開く設定を追加しておきます。

SSLの設定を行う場合は、「https」もあわせて開けておきましょう。

以下のコマンドを実行します。

# firewall-cmd –(-は2回重ねる)add-service=http –(-は2回)zone=public –(-は2回)permanent
# firewall-cmd –(-は2回重ねる)add-service=https –(-は2回)zone=public –(-は2回)permanent

コマンドを実行したら、変更内容を反映します。

# firewall-cmd –(-は2回重ねる)reload

再度設定を確認すると、「http」「https」が追加されていることが確認できます。

これにより、Nginxをインストール後、通信ができるようになります。

\ 2週間無料でお試しできます! /
VPSを使ってみる

Nginxのインストール

リポジトリからインストール

Nginxは公式のyumリポジトリから簡単にインストールできます。

まずはリポジトリファイルを作成するため、以下のコマンドを実行します。

# 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をインストールします。

# yum -y install nginx

インストール直後、Nginxは自動的に起動しないため、起動する必要があります。

以下のコマンドを使用してNginxの状態を確認し、起動します。

# service nginx status

※Nginxを起動するには、次のコマンドを実行します。

# service nginx start

実際にブラウザを起動し、WebサーバーにアクセスするとNginxのデフォルトページが表示されます。

※ブラウザを起動し、以下のURLにアクセス
http://[WebサーバーのIPアドレスまたはホスト名]
または
Webサーバー上でブラウザを起動し、以下のURLを実行
http://localhost

Nginxを操作する上での基本的なコマンド

Nginxを操作する上での基本的なコマンドについて紹介します。

インストールした直後はすでにWebサーバーが起動した状態ですが、停止や起動、自動起動の設定を行いたい場合は、以下のコマンドを実行します。

操作コマンド
Nginxの停止# systemctl stop nginx
Nginxの起動# systemctl start nginx
Nginxの再起動# systemctl restart nginx
設定のリロード# systemctl reload nginx
自動起動の有効化# systemctl enable nginx
自動起動の無効化# systemctl disable nginx

これらのコマンドを使用して、Nginxを制御できます。必要に応じて、Webサーバーの起動や停止、設定の再読み込みなどを行いましょう。

\ 2週間無料でお試しできます! /
VPSを使ってみる

Nginxの設定

nginx.confによる設定変更

設定ファイル「/etc/nginx/nginx.conf」では、さまざまな設定が行えます。

ここでは設定ファイルで設定できるパラメータの一部を解説します。

設定変更を行う場合は、必ず設定前のファイルのバックアップをとっておきましょう。

# cd /etc/nginx
# cp -p nginx.conf nginx.conf.bak

バックアップを取得したら、viコマンドで設定ファイルを編集します。

# vi nginx.conf

以下は、設定ファイルで行える変更の例です。

  • バージョン情報を隠す

Nginxのバージョンが表示されてしまうとセキュリティリスクの要因となるため、表示されないように設定します。

httpディレクティブ(http { }内)に、以下を記述します。

server_tokens off;

  • バーチャルホストの設定

Nginxは、複数のサイトを運用できる「バーチャルホスト」の設定が可能です。

複数のサイトを設定する場合、それぞれの設定ファイルを作成し、シンボリックリンクを格納するためのディレクトリを作成します。

このようにしておくと、サイトを閉鎖する際にシンボリックリンクを削除するだけでよいので、管理が楽です。

例えば、「www.sample1.com」「www.sample2.com」の2つのサイトを作成する場合は、以下のように設定を行います。

※バーチャルホストの設定ファイルを格納するディレクトリ

# mkdir /etc/nginx/sites-available

 

※バーチャルホストの設定ファイルのシンボリックリンクを格納するディレクトリ

# mkdir /etc/nginx/sites-enabled

次に、各バーチャルホストの設定ファイルを作成します。

以下は設定例です。

# vi /etc/nginx/sites-available/www.sample1.com

 

server {

listen 80;

server_name  www.sample1.com;

 

root /var/www/sample1/html;

index index.html index.htm index.nginx-debian.html;

}

同様に、sample2用も作成します。

設定ファイルを作成したら、シンボリックリンクを設定します。

# cd /etc/nginx/sites-enabled
# ln -s /etc/nginx/sites-available/www.sample1.com /etc/nginx/sites-enabled/
# ln -s /etc/nginx/sites-available/www.sample2.com /etc/nginx/sites-enabled/

各サイトのドキュメントルートを作成します。

# mkdir -p /var/www/sample1/html
# mkdir -p /var/www/sample2/html

最後に、作成したバーチャルホストの設定を読み込むように、/etc/nginx/nginx.confに以下を追記します。

include sites-enabled/*.conf;

設定が完了したら、Nginxを再起動します。

# systemctl restart nginx

これで、Nginxの設定が反映され、バーチャルホストが機能するようになります。

\ 2週間無料でお試しできます! /
VPSを使ってみる

まとめ

今回はCentOS7でのNginxのインストールおよび設定について説明しました。

NginxはApache HTTP Serverに次ぐ人気の高いWebサーバーソフトウェアです。

バーチャルホストの設定により、複数サイトの構築も可能なので、本記事を参考インストールしてみてください。

UnixやLinuxのVPSならミライサーバー

ミライサーバーは、アシストアップ株式会社が提供している、Unix系サーバーに特化したホスティングサービスです。

ミライサーバーのVPSでは、高速処理が可能なSSD全プランに搭載しています。

OSは、UbuntuDebianAlmaLinuxなどの豊富なラインアップから選択することができます。

2週間無料トライアルを実施しておりますので、まずはお気軽にお試しください。

▼ミライサーバーについてはこちら▼Unix系OS専門のホスティングサービス「ミライサーバー」

プランの選択でお困りの場合は、ぜひ一度お問い合わせください。

お問い合わせフォーム:https://www.miraiserver.ne.jp/formmail.html

VPSなら「ミライサーバー」

・全プランSSD搭載
・2週間無料

▶ ミライサーバーを無料で試す

関連記事

特集記事

おすすめ記事 最近の記事
  1. VPSに申込み、SSH接続するまでの流れ【ミライサーバー】

  2. KUSANAGIとは。超高速CMS実行環境でWordPressが高速に!

  3. レンタルサーバーからVPSへの移行!方法や注意点を解説

  1. Laravelとは。人気のPHPフレームワークを解説! 

  2. Laravelのインストール手順を解説【Ubuntu 22.04】

  3. Redmineの使い方をわかりやすく解説!【画像付き】

ランキング

  1. 1

    Ubuntu 22.04 LTSでのIPアドレス設定方法。コマンドも紹介

  2. 2

    UbuntuにSSHサーバーを構築し、SSHに接続する手順【初心者向け】

  3. 3

    SSH接続とは。リモートコンピューターへの接続方法をわかりやすく解説

カテゴリー

TOP