Ubuntu 20.04 に Nginx Web サーバーをインストールする方法
Nginx は、実稼働環境で大きな市場シェアを誇るオープンソースの高性能 Web サーバーです。これは軽量で堅牢な Web サーバーであり、主にトラフィックの多い Web サイトのホスティングに使用されます。
関連記事: Ubuntu 20.04 に Apache Web サーバーをインストールする方法
このガイドでは、Ubuntu 20.04 LTS 上で Nginx Web サーバーをインストールし、Nginx サーバー ブロック (仮想ホスト) を構成する方法を学習します。
前提条件
開始するには、SSH アクセスが可能な Ubuntu 20.04 LTS のインスタンスと、root 権限を持つ Sudo ユーザーがあることを確認してください。さらに、Nginx パッケージをインストールするには、安定したインターネット接続が推奨されます。
Ubuntu 20.04 への Nginx のインストール
1. Nginx をインストールする前に、サーバーのパッケージ リストを更新します。
sudo apt update
2. 次に、次のコマンドを実行して Nginx をインストールします。
sudo apt install nginx
続行するよう求められたら、キーボードの 'Y'
を押して ENTER を押します。インストールはわずか数秒で完了します。
3. Nginx が正常にインストールされたら、次のコマンドを実行して起動して確認できます。
sudo systemctl start nginx
sudo systemctl status nginx
上記の出力は、Nginx が実行中であることを明確に示しています。
4. Nginx のバージョンを確認するには、次のコマンドを実行します。
sudo dpkg -l nginx
出力は、この記事の執筆時点での最新バージョンであるNginx 1.17.10 を実行していることを示しています。
UFW ファイアウォールで Nginx ポートを開く
これで Nginx がインストールされ、期待どおりに実行されました。Web ブラウザ経由で Nginx にアクセスするには、いくつかの調整が必要です。 UFW ファイアウォールを実行している場合は、Nginx アプリケーション プロファイルを許可する必要があります。
ufw ファイアウォールに関連付けられている 3 つの Nginx プロファイルがあります。
- Nginx フル – これにより、ポート 80 と 443 の両方が開きます (SSL/TLS 暗号化用)。
- Nginx HTTP – これはポート 80 のみを開きます (暗号化されていない Web トラフィック用)。
- Nginx HTTPS – ポート 443 のみを開きます (SSL/TLS 暗号化用)。
5. まず、Ubuntu 20.04 でファイアウォールを有効にします。
sudo ufw enable
6. 現時点では、暗号化されたサーバー上ではないため、ポート 80 でのトラフィックを許可する Nginx HTTP プロファイルのみを許可します。 。
sudo ufw allow 'Nginx HTTP'
7. 次に、変更を維持するためにファイアウォールをリロードします。
sudo ufw reload
8. 次に、ファイアウォールのステータスをチェックして、許可されているプロファイルを確認します。
sudo ufw status
Ubuntu 20.04 での Nginx のテスト
Nginx は、Web サーバーと同様にブラウザ上で実行されます。期待どおりに実行されているかどうかをテストする最も確実な方法は、ブラウザ経由でリクエストを送信することです。
9. そこで、ブラウザにアクセスして、サーバーの IP アドレスまたはドメイン名を参照します。サーバーの IP を確認するには、ifconfig コマンドを実行します。
ifconfig
10. クラウド サーバーを使用している場合は、以下のcurl コマンドを実行してサーバーのパブリック IP を取得します。
curl ifconfig.me
11. ブラウザの URL フィールドにサーバーの IP アドレスまたはドメイン名を入力し、ENTER を押します。
http://server-IP or domain-name
図に示すように、デフォルトのNginx ウェルカム ページが表示されるはずです。
Ubuntu 20.04 で Nginx プロセスを管理する
12. Nginx Web サーバーを停止するには、次のコマンドを実行します。
sudo systemctl stop nginx
13. Web サーバーを再度起動するには、次のコマンドを実行します。
sudo systemctl start nginx
14. 起動時または再起動時に Nginx を自動的に起動するには、次の手順を実行します。
sudo systemctl enable nginx
15. 特に構成ファイルに変更を加えた後に Web サーバーを再起動する場合は、次のコマンドを実行します。
sudo systemctl restart nginx
16. また、図に示すように、リロードして接続のドロップを回避することもできます。
sudo systemctl reload nginx
Ubuntu 20.04 での Nginx サーバー ブロックの構成
サーバー上で複数のサイトをホストする予定がある場合は、Nginx サーバー ブロックを設定することを強くお勧めします。サーバー ブロックは、Apache の仮想ホストに相当します。
デフォルトでは、Nginx には、/var/www/html
パスで Web コンテンツを提供するように設定されたデフォルトのサーバー ブロックが付属しています。
ドメインのコンテンツを提供するために、別の Nginx ブロックを作成します。このガイドでは、ドメイン crazytechgeek.info
を使用します。
この場合、これを独自のドメイン名に置き換えてください。
17. サーバー ブロック ファイルを作成するには、まず、図に示すようにドメインのディレクトリを作成します。
sudo mkdir -p /var/www/crazytechgeek.info/html
18. 次に、$USER
変数を使用して、新しいディレクトリに所有権を割り当てます。
sudo chown -R $USER:$USER /var/www/crazytechgeek.info/html
19. それに応じてディレクトリ アクセス許可も割り当てて、所有者にすべてのアクセス許可 (読み取り、書き込み、実行) を許可し、他のパーティには読み取りと実行のアクセス許可のみを付与するようにしてください。
sudo chmod -R 755 /var/www/crazytechgeek.info
20. ドメイン ディレクトリ内に、ドメインの Web コンテンツを含むファイル index.html
を作成します。
sudo vim /var/www/crazytechgeek.info/html/index.html
以下の内容をサンプル テスト ファイルに貼り付けます。
<html>
<head>
<title>Welcome to your_domain!</title>
</head>
<body>
<h1>Bravo! Your server block is working as expected!</h1>
</body>
</html>
変更を保存してファイルを終了します。
21. Nginx Web サーバーが追加したコンテンツを提供するには、適切なディレクティブを使用してサーバー ブロックを作成する必要があります。この場合、次の場所に新しいサーバー ブロックを作成しました。
sudo vim /etc/nginx/sites-available/crazytechgeek.info
表示されている構成を貼り付けます。
server {
listen 80;
listen [::]:80;
root /var/www/crazytechgeek.info/html;
index index.html index.htm index.nginx-debian.html;
server_name crazytechgeek.info www.crazytechgeek.info;
location / {
try_files $uri $uri/ =404;
}
}
保存して終了。
22. ここで、Nginx サーバーが起動時に読み取る sites-enabled ディレクトリにサーバー ブロック ファイルをリンクして、サーバー ブロック ファイルを有効にします。
sudo ln -s /etc/nginx/sites-available/crazytechgeek.info /etc/nginx/sites-enabled/
23. 変更を有効にするには、Nginx Web サーバーを再起動します。
sudo systemctl restart nginx
24. すべての設定が正しいことを確認するために、次のコマンドを実行します。
nginx -t
すべての構成が適切であれば、以下に示す出力が得られるはずです。
25. これで、Nginx Web サーバーがドメインのコンテンツを提供するようになります。もう一度、ブラウザにアクセスしてサーバーのドメインを参照します。
http://domain-name
ドメインのディレクトリ内のカスタム コンテンツは次のように提供されます。
重要な Nginx 構成ファイル
最後に、Nginx に関連する重要な設定ファイルのいくつかを確認することが重要です。
Nginx 構成ファイル
- /etc/nginx/nginx.conf: これはメインの設定ファイルです。サーバーの要件に合わせて設定を変更できます。
- /etc/nginx/sites-available: これは、サーバー ブロック構成を保存するディレクトリです。 Nginx は、サーバー ブロックがサイト対応ディレクトリにリンクされている場合にのみ使用します。
- /etc/nginx/sites-enabled: このディレクトリには、すでに有効になっているサイトごとの Nginx サーバー ブロックが含まれています。
Nginx ログ ファイル
Nginx Web サーバーのトラブルシューティングに使用できる主なログ ファイルは 2 つあります。
- /var/log/nginx/access.log: これは、Web サーバーに対して行われたすべてのリクエストを記録します。
- /var/log/nginx/error.log: これはエラー ログ ファイルで、Nginx で発生したすべてのエラーが記録されます。
結論
このチュートリアルは終わりに達しました。 Ubuntu 20.04 に Nginx をインストールする方法と、ドメインのコンテンツを提供するために Nginx サーバー ブロックを設定する方法を説明しました。フィードバックは大歓迎です。