【簡単】Webサーバー構築手順<CentOSとnginx>

  • URLをコピーしました!

目的: CentOSにnginxをインストールし、簡単なHTMLページを表示できるWebサーバーを構築します。

目次

1. 前提条件

  • CentOS 7/8のインストールが完了している
  • サーバーにrootアクセス権限がある

Linuxが使える仮想環境の構築がない方は
まずは下記記事から作成をしてみましょう。

2. EPELリポジトリの有効化

CentOSでは公式リポジトリにnginxが含まれていないため、EPELリポジトリを有効化します。
これにより、nginxのパッケージをインストールできます。

sudo yum install epel-release -yを実行します。
「完了しました!」と表示されればOKです。

  • 理由: EPEL (Extra Packages for Enterprise Linux) はRed Hat系ディストリビューション向けの追加パッケージを提供しているリポジトリです。nginxはここからインストールします。

3.yumリポジトリを設定する

/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
EOF

sudo tee /etc/yum.repos.d/nginx.repo <<EOFを実行し、
上記を書き込むorペーストします。

4. nginxのインストール

リポジトリを追加したら、nginxをインストールします。

sudo yum install nginx -yを実行します。
「完了しました!」と表示されればOKです。

  • 理由: Webサーバーを立ち上げるためにnginxが必要です。

5. nginxの起動と有効化

インストールが完了したら、nginxを起動し、システム起動時に自動的にnginxが立ち上がるように設定します。

sudo systemctl start nginx

sudo systemctl enable nginxを実行します。

  • 理由: startでサービスを起動し、enableで自動起動設定を行います。

6. ファイアウォールの設定

CentOSではファイアウォールを有効にしていることが多く、
nginxがHTTP通信に使用するポート80を許可する必要があります。

まず、以下のコマンドでファイアウォールの設定を確認します。

sudo firewall-cmd --list-allを実行します。

この結果、許可されているサービスやポートが表示されますが、
httpが含まれていない場合は許可します。

HTTP (ポート80) を許可する手順:

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

  • 意味: --permanentオプションで設定を永続化します。--zone=publicはデフォルトゾーンの設定を変更しており、--add-service=httpでHTTPプロトコルを許可します。

今回私の画面では、既にhttpが許可されていたのでエラーがでていますが
successと表示されていればOKです。

ファイアウォールを再読み込みする:

sudo firewall-cmd --reload

  • 理由: 変更を反映させるためにファイアウォールを再読み込みします。

設定後、再度sudo firewall-cmd --list-allコマンドでHTTPが許可されているか確認します。

7. ブラウザでの確認

ファイアウォール設定が完了したら、nginxの動作確認のためにブラウザでアクセスします。
次の手順で確認します。

サーバーのIPアドレスを取得:サーバーのIPアドレスはip aコマンドで確認します。
inetという表記の隣にある数値がサーバーのIPアドレスです 。

ブラウザでアクセス:サーバーのIPアドレスをブラウザのアドレスバーに入力します。
次のように入力してください。

http://<サーバーのIPアドレス>
例: http://192.168.1.25

↓検索結果

結果: nginxのデフォルトページが表示されます。「Welcome to nginx!」というメッセージが表示されれば、
nginxのインストールとファイアウォール設定は成功しています。

もし、下記のページが表示される場合はnginxがうまく動作していません。
※デフォルトのApacheが動作しています。

その場合は、下記コマンドでApacheを停止し、nginxを起動させて再度確認しましょう。

  • sudo systemctl stop
  • httpd sudo systemctl disable
  • httpd sudo systemctl restart nginx

8. HTMLファイルの作成と配置

今はnginxのデフォルトページが表示されている状態ですが
次に、nginxのデフォルトページを変更して自分で作ったHTMLファイルを表示させてみましょう。
今のままでは/usr/share/nginx/html/index.htmlに書き込み権限がないので
パーミッションを変更します。

↓現在の状態(root以外のユーザに書き込み権限がありません)

↓以下に変更

  1. HTMLファイルの作成:echo "<h1>My First Web Page</h1>" > /usr/share/nginx/html/index.htmlを実行
  2. nginxの設定ファイルを確認:catで確認

nginxはデフォルトで/usr/share/nginx/html/ディレクトリからコンテンツを提供します。
作成したHTMLファイルをここに配置することで、ブラウザからアクセスできるようになります。

9. ブラウザでの表示確認

再度、ブラウザからサーバーのIPアドレスにアクセスして、
作成したHTMLファイルが表示されることを確認します。

  • 結果: 「My First Web Page」というメッセージが表示されます。

10.nginxの停止手順

nginxを使用しない場合は、以下のコマンドで停止することができます。

sudo systemctl stop nginx
  • 意味: systemctlはサービスの管理コマンドであり、stopはnginxのプロセスを停止させます。

また、nginxを再び使用する場合は、以下のコマンドで再起動できます。

sudo systemctl start nginx

必要に応じてnginxを停止・起動することで、サーバーのリソースを効率的に利用し、
セキュリティリスクを軽減することができます。

サーバーがインターネットに接続されている場合は、起動し続けておくと
セキュリティリスクがありますし、リソースの無駄使いやポートの競合など問題が発生する可能性があります。

普段使用している環境は、コマンド練習や他のサーバー構築で使用していると思うので
基本的には作成練習後はサービスを停止しておくようにしましょう。

まとめ

この手順を完了することで、CentOSにnginxを用いたWebサーバーを構築し、
HTMLファイルをブラウザに表示することができました。
nginxは軽量で高速なWebサーバーとして広く使用されており、
この基本設定を理解することで、さらなるカスタマイズや運用管理が可能になります。

    目次