Nginx(エンジンエックス)は、オープンソースのWebサーバーで、Apache HTTP Serverに次ぐ人気を誇っています。
軽量かつ高速に動作するようパフォーマンスに特化していますが、最低限の機能は提供されています。
本記事では、CentOS環境にNginxをインストールし、設定を行うまでの手順を紹介します。
Ngixの導入を検討している方は、ぜひ本記事の手順に沿ってCentOS7にインストールし、実際に使ってみてください。
Nginx(エンジンエックス)については以下の記事で詳しく解説しています。
CentOSをインストールしたばかりの方は、こちらの記事もご参照ください。
2023.07.06
CentOS 7 のインストール直後に行う初期設定を紹介
CentOS Linux(以下、CentOS)は、RHEL(Red Hat Enterprise Linux)と完全互換を目指して開発された...
CentOS LinuxをVPSで利用するなら
ミライサーバー
\ 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は、UbuntuやDebian、AlmaLinuxなどの豊富なラインアップから選択することができます。
2週間無料トライアルを実施しておりますので、まずはお気軽にお試しください。
プランの選択でお困りの場合は、ぜひ一度お問い合わせください。
お問い合わせフォーム:https://www.miraiserver.ne.jp/formmail.html
2023.08.03
VPSに申込み、SSH接続するまでの流れ【ミライサーバー】
オンラインビジネスやWebサイトの運営を始める際には、ホスティングサービスの中から自分の用途に合ったサーバー環境を利用することが一般的です。...