Ubuntu20.04システムにNginxWebサーバーをインストールしてセットアップするための完全なステップバイステップガイド
Nginxは、複数のプラットフォームで利用できるオープンソースで人気のあるリバースプロキシWebサーバーです。ソフトウェアはによって開発されました イゴール・シソエフ C10K問題の解決策として、2004年に最初にリリースされました。C10K問題は、1万のクライアントを同時に処理する問題であり、2000年代初頭には非常に簡単ではありませんでした。
このチュートリアルでは、Ubuntu 20.04LTSにNginxをインストールしてセットアップする方法を見ていきます。
前提条件
Ubuntu 20.04がインストールされ、 sudo
ユーザー。さらに、Apacheなどの他のWebサーバーをポート80または443で実行する必要はありません。
Nginxのインストール
NginxはUbuntu20.04リポジトリで利用可能であり apt
パッケージマネージャーを使用してインストールできます。したがって、Nginxをインストールするには、を使用してターミナルを開きます ctrl + alt + t
実行します:
sudo apt update && sudo apt install nginx
インストールはまもなく完了し、Nginxデーモンはバックグラウンドで自動的に起動します。したがって、Nginxのステータスを確認するには、次のコマンドを実行します。
sudo systemctl status nginx
上記のコマンドを実行した後、Nginxステータスを次のように取得する必要があります アクティブ(実行中)
以下に示すように緑色で表示されます。
Ubuntuファイアウォール(UFW)の設定
デフォルトでは、Ubuntu 20.04では発信ポートHTTP(80)およびHTTPS(443)が閉じられています。さらに、デフォルトのファイアウォールデーモン ufw
すべてのポートが閉じているため、は無効になっています。
したがって、他のシステムからNginxサーバーにアクセスするには、 ufw
ポートでのトラフィックを許可するように正しく設定します 80
と 443
。有効にする前に ufw
、リモートサーバーでNginxを設定する場合は、最初に ufw
許可するルール ssh
実行することによって:
sudo ufw allow ssh
上記のコマンドにより、 ssh
許可せずにリモートサーバーにアクセスする ssh
リモートサーバーからロックアウトされます。
有効にした後 ssh
アクセス、有効にすることができます ufw
実行することによるファイアウォールデーモン:
sudo ufw enable
次に、ファイアウォールルールを変更して、HTTPポートとHTTPSポートを許可し、NginxがWebトラフィックを処理できるようにする必要があります。ルールを変更するには、次のコマンドを実行します。
sudo ufw allow'Nginx Full '
Nginxフル
すべてのIPアドレスからの着信トラフィックと発信トラフィックにHTTPポートとHTTPSポートの両方を許可します。
その後、ルールが適切に追加されているかどうかを確認します ufw
コマンドを実行してファイアウォール:
sudoufwステータス
上記のコマンドは、追加したルールを出力します ufw
ファイアウォールデーモン。
Nginxサーバーへの接続
これで、Nginxをインストールして構成しました ufw
着信HTTPおよびHTTPSWebトラフィックを許可するには、サーバーのIPアドレスを使用してNginxサーバーにアクセスできる必要があります。
サーバーのIPアドレスがわからない場合は、以下のコマンドを使用して簡単に取得できます。
ip addr show eth0 | grep inet | awk '{print $ 2; } '| sed's /\/.*$// '
IPアドレスを取得したら、それをブラウザに貼り付けてEnterキーを押します。
// your-server-ip
すべてが正しく構成されていれば、「Welcome tonginx!」のWebページが表示されるはずです。
Nginxファイルとディレクトリ
これで、Nginxがサーバーにインストールされて実行されました。 Webサイト/ Webアプリを構成するために使用する必要がある重要なNginxファイルとディレクトリのいくつかを見てみましょう。
Webサーバーのコンテンツ
サーバーブロックのルートディレクトリにする任意の場所を構成できます。 NginxのデフォルトのHTMLは直接 / var / www / html
、以前にアクセスした「ウェルカム」ページがある場所です。
ドメインのルートディレクトリとして通常使用されるその他の場所は次のとおりです。
/家//
/ var / www / html /
/ opt /
Nginx構成ファイル
すべてのNginx構成ファイルはにあります / etc / nginx
ディレクトリ。基本ドメインを設定するために必要ないくつかの重要なファイルを見てみましょう。
/etc/nginx/nginx.conf
:このファイルには、Nginxを実行するために必要なすべての構成が含まれています。/ etc / nginx / sites-available /
:このディレクトリには、ドメインのすべてのサーバーブロック構成がありますが、現在有効化/展開されていないため、クライアントはアクセスできません。/ etc / nginx / sites-enabled /
:このディレクトリには、クライアントがアクセスできる現在アクティブ/有効なドメインが保持されます。ドメインを有効にするには、ドメイン構成ファイルをからリンクする必要がありますサイト-利用可能
にサイト対応
ディレクトリ。/ etc / nginx / snippets
/:このディレクトリには、再利用可能な構成のセグメントを保存できます。構成のセグメント/ブロックを再利用可能にすることができるため、実稼働環境で多くの時間を節約できます。
サーバーログ
Nginxはイベント/アクティビティをログに記録し、それらをログファイルに保存します。 / var / log / nginx
ディレクトリ。 Nginxは、次のファイルにアクティビティを記録します。
/var/log/nginx/access.log
:このファイルは、Nginxサーバーにアクセスしたクライアントをログに記録します。詳細には、クライアントのIPアドレス、日時、サーバーおよびOSへのアクセスに使用されるブラウザーが含まれます。/var/log/nginx/error.log
:このファイルは、実行中にNginxサーバーで発生したエラーをログに記録します。
そのため、このセクションでは、開始するのに十分な重要なNginxファイルとディレクトリのいくつかを簡単に見てきました。
サーバーブロックの設定
Nginxファイルとサーバーに関する基本的な知識が得られたので、独自のサーバーブロックを設定する準備が整いました。サーバーブロックはApache仮想ホストに似ています。
サーバーブロックを作成する方法を見て、使用する方法を示します example.com
作成プロセスのドメインとして。
💡置換 example.com
あなたのドメイン名で.
サーバーブロックの構成を開始する前に、Webサイトコンテンツのルートディレクトリとして機能するディレクトリを作成する必要があります。作成しましょう /var/www/example.com/html
を使用するドメインのディレクトリ mkdir
指図。
sudo mkdir -p /var/www/example.com/html
The -p
オプションは、必要なすべての親ディレクトリを作成します。つまり、作成されます example.com
親ディレクトリ html
存在しない場合。
ディレクトリの所有権を $ USER
環境変数:
sudo chown -R $ USER:$ USER /var/www/example.com/html
次に、簡単なものを作成します index.html
構成されているドメインにアクセスしたときにアクセスされるファイル。これは説明のみを目的としています。
nano /var/www/example.com/html/index.html
サーバー上に作成したファイルに次のコンテンツを貼り付けます。
example.comへようこそ! よ! example.comにアクセスできます!
押す ctrl + o
書き込みと保存 index.html
ファイルしてから、を押します ctrl + x
出る ナノ
編集者。
最後に、サーバーブロックの作成に移り、Nginxが index.html
一部のユーザーが example.com
。したがって、サーバーブロックを作成するには、次の名前の構成ファイルを作成する必要があります。 example.com
の サイト-利用可能
ディレクトリ。そのために、nanoを使用して実行します。
sudo nano /etc/nginx/sites-available/example.com
次に、次の構成を入力するか、コピーして貼り付けます。次にを押します ctrl + o
書き込みと保存を入力します。同様に、を押します ctrl + x
nanoエディターを閉じます。
サーバー{リッスン80;聞く[::]:80; server_name example.com www.example.com;ルート/var/www/example-domain.com/html; index index.html;場所/ {try_files $ uri $ uri / = 404; }}
上記の構成はデフォルトのサーバーブロック構成に似ていますが、変更しました 根
新しいルートディレクトリをポイントし、 サーバーネーム
私たちのドメイン名に。ながら 位置{}
ステートメントは、ファイルが見つからない場合のエラーキャッチステートメントとして機能し、クライアントにエラー404を表示します。
次に、サーバーブロックを有効にして、Nginxがサービスを提供できるようにします example.com
ウェブページ。サーバーブロックを有効にするには、次のシンボリックリンクを作成する必要があります。 example.com
からのファイル サイト-利用可能
に サイト対応
ディレクトリ。これを行うには、次を実行します。
sudo ln -s /etc/nginx/sites-available/example.com / etc / nginx / sites-enabled
リンクはで作成されます サイト対応
ディレクトリと今 example.com
有効にする必要があります。これで、Nginxサーバーで2つのサーバーブロックが有効になり、に基づいてリクエストに応答します。 聞く
と sever_name
保存されたディレクティブ example.com
サーバーブロック構成。
すべての構成ファイルが正しく、構文エラーがないかどうかを確認するには、次のコマンドを実行します。
sudo nginx -t
最後に、次のコマンドを実行して、Nginxを再起動し、変更を適用します。
sudo systemctl restart nginx
Nginxは今すぐサーバーブロックの提供を開始します。 // your-domain-name
そしてあなたのウェブページをライブで見てください。
ノート: 上記のセクションを機能させるには、独自のドメインを設定して置き換える必要があります example.com
あなた自身のドメイン名で。また、NginxサーバーのIPアドレスを指すようにドメインのDNSを構成する必要があります。
結論として、Nginxをインストールし、構成する方法を見てきました ufw
Nginxにリモート接続されたNginxサーバーへのリモートアクセスを許可するために、いくつかの基本的なNginxファイルとディレクトリに精通し、サーバーブロックの設定方法を学びました。
Nginxについて詳しく知るには、Nginxwikiを参照してください。