Nginxは、オープンソースの高性能Webサーバーであり、本番環境で大きな市場シェアを指揮しています。これは、トラフィックの多いWebサイトのホスティングで主に使用される軽量で堅牢なWebサーバーです。
このガイドでは、Ubuntu 20.04 LTSに Nginx Webサーバーをインストールし、Nginxサーバーブロック(仮想ホスト)を構成する方法を学習します。
前提条件
開始するには、SSHアクセスが可能なUbuntu 20.04 LTSのインスタンスと、ルート権限を持つ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 Full –これにより、ポート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 Serverブロックを設定することを強くお勧めします。サーバーブロックは、 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ウェブサーバーで追加したコンテンツを提供するには、適切なディレクティブを使用してサーバーブロックを作成する必要があります。この場合、次の場所に新しいサーバーブロックを作成しました。
$ 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サーバーが起動時に読み取るサイトが有効なディレクトリにリンクして、サーバーブロックファイルを有効にします。
$ sudo ln -s /etc/nginx/sites-available/crazytechgeek.info /etc/nginx/sites-enabled/
23.変更を有効にするには、 Nginxウェブサーバーを再起動します。
$ sudo systemctl restart nginx
24.すべての構成が正しいことを確認するために、次のコマンドを実行します。
$ nginx -t
すべての構成が正しい場合、以下に示す出力が得られるはずです。
25. Nginxウェブサーバーがドメインのコンテンツを提供するはずです。もう一度、ブラウザにアクセスして、サーバーのドメインを参照します。
http://domain-name
ドメインのディレクトリ内のカスタムコンテンツは、図のように提供されます。
重要なNginx構成ファイル
締めくくる前に、 Nginxに関連する重要な構成ファイルのいくつかを調べることが重要です。
Nginx構成ファイル
- /etc/nginx/nginx.conf :これはメインの設定ファイルです。サーバーの要件に合わせて設定を変更できます。
- / etc / nginx / sites-available :これは、サーバーブロックの設定を保存するディレクトリです。 Nginxは、サイトが有効なディレクトリにリンクされている場合にのみサーバーブロックを使用します。
- / etc / nginx / sites-enabled :ディレクトリには、すでに有効になっているサイトごとのNginxサーバーブロックが含まれています。
Nginxログファイル
Nginxウェブサーバーのトラブルシューティングに使用できる2つのメインログファイルがあります。
- /var/log/nginx/access.log :これはウェブサーバーに対して行われたすべてのリクエストをログに記録します。
- /var/log/nginx/error.log :これはエラーログファイルであり、Nginxで発生したすべてのエラーを記録します。
結論
このチュートリアルはこれで終わりです。 Ubuntu 20.04に Nginxをインストールする方法と、ドメインのコンテンツを提供するためにNginxサーバーブロックを設定する方法を示しました。あなたのフィードバックは大歓迎です。