開発者ドキュメント

CentOS8にNginxをインストールする方法

序章

Nginx は、世界で最も人気のあるWebサーバーの1つであり、インターネット上で最大かつ最も人気のあるサイトのいくつかをホストする責任があります。 ほとんどの場合、Apacheよりもリソースに優しく、Webサーバーまたはリバースプロキシとして使用できます。

このガイドでは、CentOS8サーバーにNginxをインストールする方法について説明します。

前提条件

このガイドに従うには、sudo権限を持つ非rootユーザーとしてCentOS 8サーバーにアクセスし、サーバーにアクティブなファイアウォールをインストールする必要があります。 これを設定するには、CentOS8初期サーバー設定ガイドに従ってください。

ステップ1—NginxWebサーバーをインストールする

Nginxをインストールするには、 dnf パッケージマネージャー。CentOS8の新しいデフォルトのパッケージマネージャーです。

をインストールします nginx パッケージ:

  1. sudo dnf install nginx

プロンプトが表示されたら、次のように入力します y インストールすることを確認します nginx. その後、 dnf Nginxと必要な依存関係をサーバーにインストールします。

インストールが完了したら、次のコマンドを実行してサーバーを有効にして起動します。

  1. sudo systemctl enable nginx
  2. sudo systemctl start nginx

これにより、システムの起動時にNginxが起動します。

ステップ2—ファイアウォールルールの調整

有効にした場合 firewalld CentOS 8 初期サーバーセットアップガイドで説明されているファイアウォールの場合、ポートで実行されるNginx Webサーバーで外部接続を許可するには、ファイアウォール設定を調整する必要があります。 80 デフォルトでは。

次のコマンドを実行して、ポートでHTTP接続を永続的に有効にします 80:

  1. sudo firewall-cmd --permanent --add-service=http

を確認するには http ファイアウォールサービスが正しく追加されました。次のコマンドを実行できます。

  1. sudo firewall-cmd --permanent --list-all

次のような出力が表示されます。

Output
public target: default icmp-block-inversion: no interfaces: sources: services: cockpit dhcpv6-client http ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

変更を適用するには、ファイアウォールサービスをリロードする必要があります。

  1. sudo firewall-cmd --reload

これで、Nginxサーバーが完全にインストールされ、外部の訪問者がアクセスできるようになりました。

ステップ3—Webサーバーを確認する

これで、WebブラウザからサーバーのパブリックIPアドレスまたはドメイン名にアクセスして、NginxWebサーバーが稼働しているかどうかをテストできます。

:DNSホスティングプロバイダーとしてDigitalOceanを使用している場合は、製品ドキュメントで、新しいドメイン名を設定してサーバーにポイントする方法の詳細な手順を確認できます。 。

サーバーを指すドメイン名がなく、サーバーのパブリックIPアドレスがわからない場合は、次のコマンドを実行してドメイン名を見つけることができます。

  1. ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

これにより、いくつかのIPアドレスが出力されます。 Webブラウザでそれぞれを順番に試すことができます。

別の方法として、インターネット上の他の場所から見たときに、どのIPアドレスにアクセスできるかを確認できます。

  1. curl -4 icanhazip.com

Webブラウザーで受け取ったアドレスを入力すると、Nginxのデフォルトのランディングページに移動します。

このページが表示されている場合は、Webサーバーが正しくインストールされています。

ステップ4–Nginxプロセスの管理

Webサーバーが稼働しているので、Nginxサービスを管理する方法を確認します。 systemctl.

Webサーバーを停止する必要があるときはいつでも、次を使用できます。

  1. sudo systemctl stop nginx

停止時にWebサーバーを起動するには、次のように入力します。

  1. sudo systemctl start nginx

サービスを停止してから再開するには、次を使用できます。

  1. sudo systemctl restart nginx

Nginxは、接続を切断せずに構成の変更を再読み込みすることもできます。 これを行うには、次のように入力します。

  1. sudo systemctl reload nginx

デフォルトでは、Nginxはサーバーの起動時に自動的に起動するように構成されています。 これが希望どおりでない場合は、次のように入力してこの動作を無効にできます。

  1. sudo systemctl disable nginx

サービスを再度有効にして、Nginxを起動時に再開させるには、次を使用できます。

  1. sudo systemctl enable nginx

ステップ5–重要なNginxファイルとディレクトリに精通する

Nginxサービスの管理方法がわかったので、数分でいくつかの重要なディレクトリとファイルに慣れることができます。

コンテンツ

サーバー構成

サーバーログ

手順6–サーバーブロックの設定(オプション)

同じNginxWebサーバー内で複数のWebサイトをホストする場合は、サーバーブロックを設定する必要があります。 NginxサーバーブロックはApache仮想ホストと同じように機能し、単一のサーバーが複数のドメイン名に応答し、それぞれに異なるコンテンツを提供できるようにします。 CentOS 8では、サーバーブロックは次のように定義されます。 .conf にあるファイル /etc/nginx/conf.d.

your_domainというドメインのサーバーブロックを設定します。 DigitalOceanを使用したドメイン名の設定の詳細については、 DigitalOceanDNSの概要を参照してください。

デフォルトでは、CentOS 8のNginxは、次のディレクトリからドキュメントを提供するように構成されています。 /usr/share/nginx/html. これは単一のサイトではうまく機能しますが、複数のサイトをホストしている場合は管理できなくなる可能性があります。 変更する代わりに /usr/share/nginx/html、内にディレクトリ構造を作成します /var/www your_domain Webサイトの場合、 /usr/share/nginx/html クライアント要求が他のサイトと一致しない場合に提供されるデフォルトのディレクトリとして配置されます。

次のように、your_domainのディレクトリを作成します。 -p 必要な親ディレクトリを作成するためのフラグ:

  1. sudo mkdir -p /var/www/your_domain/html

次に、ディレクトリの所有権を $USER 現在のシステムユーザーを参照する必要がある環境変数:

  1. sudo chown -R $USER:$USER /var/www/your_domain/html

次に、サンプルを作成します index.html サーバーブロック構成をテストするページ。 CentOS8に付属するデフォルトのテキストエディタは vi. vi は非常に強力なテキストエディタですが、経験が不足しているユーザーにとってはやや鈍感になる可能性があります。 次のようなよりユーザーフレンドリーなエディタをインストールすることをお勧めします nano CentOS8サーバー上の構成ファイルの編集を容易にするために:

  1. sudo dnf install nano

今、あなたは使用することができます nano サンプルを作成するには index.html ファイル:

  1. nano /var/www/your_domain/html/index.html

そのファイル内に、次のHTMLコードを追加します。

/var/www/your_domain/html/index.html
<html>
    <head>
        <title>Welcome to your_domain</title>
    </head>
    <body>
        <h1>Success! Your Nginx server is successfully configured for <em>your_domain</em>. </h1>
<p>This is a sample page.</p>
    </body>
</html>

終了したら、ファイルを保存して閉じます。 使用した場合 nano、を押すことでそうすることができます CTRL + X, Y、 それから ENTER.

Nginxがこのコンテンツを提供するには、カスタムWebルートを指す正しいディレクティブを使用してサーバーブロックを作成する必要があります。 で新しいサーバーブロックを作成します /etc/nginx/conf.d/your_domain.conf:

  1. sudo nano /etc/nginx/conf.d/your_domain.conf

次の構成ブロックに貼り付けます。

/etc/nginx/conf.d/your_domain.conf
server {
        listen 80;
        listen [::]:80;

        root /var/www/your_domain/html;
        index index.html index.htm index.nginx-debian.html;

        server_name your_domain www.your_domain;

        location / {
                try_files $uri $uri/ =404;
        }
}

コンテンツの編集が完了したら、ファイルを保存して閉じます。

どのNginxファイルにも構文エラーがないことを確認するには、次のコマンドを実行します。

  1. sudo nginx -t

問題がない場合は、次の出力が表示されます。

Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

構成テストに合格したら、Nginxを再起動して変更を有効にします。

  1. sudo systemctl restart nginx

ブラウザから変更をテストする前に、サーバーの SELinux セキュリティコンテキストを更新して、Nginxがコンテンツを提供できるようにする必要があります。 /var/www/your_domain ディレクトリ。

次のコマンドを使用すると、カスタムドキュメントルートをHTTPコンテンツとして提供できます。

  1. chcon -vR system_u:object_r:httpd_sys_content_t:s0 /var/www/your_domain/

これで、に移動してカスタムドメイン設定をテストできます。 http://your_domain、次のようなものが表示されます。

このページでは、サーバーブロック用に作成されたカスタムドキュメントルートで定義したHTMLコードをレンダリングしています。 このページが表示されている場合は、Nginxサーバーがドメインにサービスを提供するように正しく構成されていることを意味します。

結論

このガイドでは、高性能WebサーバーおよびリバースプロキシであるNginxをインストールおよびセットアップする方法について説明しました。 サーバーで実行されているNginxサービスを管理する方法と、構成ファイル、コンテンツ、ログを保存するためにNginxが使用するメインディレクトリを確認しました。

ここから、Webサーバー内でホストされているWebサイトで使用する可能性のあるコンテンツの種類とテクノロジに関する多くのオプションがあります。

モバイルバージョンを終了