NGINX は 15 年以上前に導入されて以来、着実に人気を博し、現在では世界で最も人気のある Web サーバーとなり、 [ngx_snippet name='number-sites'] を超える Web サイトで利用されています。 この場合、私たちは、他の例に倣って、すべてのWeb サービスニーズに NGINX を使用し、さらにリバース プロキシ、コンテンツ キャッシュ、ロード バランサ、 API ゲートウェイなどの機能を活用するのが賢明だと考えます。
このブログ記事では、個人のコンピューターの設定に影響を与えない、使いやすいセットアップで、Amazon Web Services (AWS) 上の Ubuntu 20.04 で NGINX を起動して実行する方法について説明します。 これには、 NGINXと、エンタープライズ グレードの機能が追加された商用サポート バージョンであるNGINX Plus の両方が含まれます。
ここで説明した手順を完了したら、NGINX の構成、管理、および運用方法を学習する 1 日コースである NGINX Core トレーニング (インストラクター主導またはオンデマンド) に進むことをお勧めします。このコースは、高度なトピックに関する他のインストラクター主導コースやセルフペース コースの準備にもなります。
チュートリアルには、次のタスクの手順が含まれています。
このチュートリアルでは、 Amazon Elastic Compute Cloud (EC2) インスタンスに接続するためのターミナルが必要です。 Mac にはターミナルが組み込まれていますが、Windows ユーザーは PuTTY または同等のツールをダウンロードする必要があります。 独自のローカルターミナルを使用して NGINX または NGINX Plus をセットアップし、Web コンテンツを提供したい場合は、 「AWS のセットアップ」に進んでください。
Mac では、組み込みのターミナル
ツールを使用して、このチュートリアルのすべての操作を実行できます。
画面上部のバーの右端にある虫眼鏡アイコンをクリックします。
ポップアップ ボックスに「terminal」
と入力し、Enter キーを押します。 別のターミナル ウィンドウが開きます。
Windows にはターミナルが組み込まれていないため、インターネットからダウンロードする必要があります。 AWS と併せて、世界中で使用されているSSH
クライアントである PuTTY をお勧めします。
PUTTY のダウンロード ページにアクセスします。
任意の場所にファイルをダウンロードしてインストールし、開きます。 ただし、 「AWS の設定」の手順を完了するまで、実際のターミナルにアクセスすることはできません。
このチュートリアルでは、 Amazon Virtual Private Cloud (VPC) があり、ほとんどのアカウントで作成されるデフォルトの VPC 設定をそのまま使用できることを前提としています。 このセクションでは、EC2 インスタンスを作成してそれに接続することで、AWS デプロイメントを設定します。
注記: EC2 インスタンスを作成するための以下の手順とスクリーンショットは、執筆時点で検証されており、AWS によって変更される可能性があります。 必要に応じて指示を調整します。
AWS ホームページで、(AWS マネジメント) コンソールにサインインするか、必要に応じてまず新しいアカウントを作成します。
コンソールのタイトル バーで[サービス]をクリックし、コンピューティングセクションで[EC2] をクリックします。
開いた EC2 ダッシュボード ページで、 [インスタンスの起動]ボタンをクリックします。
ステップ 1ページで、 Ubuntu Server 20.04 LTS (HVM)、SSD ボリューム タイプ行の[選択]ボタンをクリックし、デフォルトの64 ビット (x86)アーキテクチャ選択をそのままにします。
ステップ 2ページで、 t2.microインスタンス タイプを選択します。このインスタンス タイプは、この記事の執筆時点では無料利用枠の対象としてマークされており、デフォルトで選択されています。 「次へ」をクリックします。 インスタンスの詳細を構成するボタン。
ステップ 3ページで、使用する VPC が[ネットワーク]フィールドで選択されていること、および[パブリック IP の自動割り当て]フィールドがデフォルトの[サブネットの使用] 設定 (有効)または[有効]に設定されていることを確認します。 残りの設定はデフォルトのままにしておきます。
6をクリックします。 セキュリティグループを構成する ページの上部にあります。
ステップ 6ページで、次の手順を実行して、受信 HTTP および HTTPS トラフィックを許可します (デフォルトでは、EC2 インスタンスは SSH トラフィックのみを受け入れます)。
表の下にある[ルールの追加]ボタンをクリックし、 [タイプ] 列のドロップダウン メニューから[HTTP]を選択します。 このチュートリアルでは、任意の IP アドレスからのアクセスを許可します (ソース列の値はAnywhere 0.0.0.0/0, ::/0です)。 運用環境では、アクセスを制御するためにセキュリティ グループの使用を義務付けるページの警告に従うことをお勧めします。
HTTPSに対して前の手順を繰り返します。
ページの下部にある[レビューと起動]ボタンをクリックします。
ステップ 7ページで、下部にある[起動]ボタンをクリックします。
ポップアップボックスで、新しいキーペアを作成します。
上部のドロップダウン メニューから[新しいキー ペアの作成]を選択します。
キーペアのタイプを選択します。 このチュートリアルでは、 RSA を選択します。
キーペア名フィールドにNGINX_keyなどの名前を入力します。
「キーペアのダウンロード」ボタンをクリックします。
下のアニメーションのスクリーンショットに示すように、 [キー ペアのダウンロード]ボタンの代わりにチェック ボックスが表示されます。 クリックすると、秘密鍵にアクセスできることを示します。
「インスタンスの起動」ボタンをクリックします。
ファイル マネージャー ユーティリティで、ダウンロードした.pemファイル (チュートリアルではNGINX_key.pem ) を安全な場所に移動します。 このチュートリアルでは、 /Desktop/NGINXディレクトリに配置します。
Windows ターミナルを使用する場合は、 AWS の指示に従って PuTTYgen ユーティリティをダウンロードし、 .pemファイルを.ppkファイルに変換します。
「起動ステータス」ページで、下部にある「インスタンスの表示」ボタンをクリックします。
開いた「インスタンス」ページの表に、新しいインスタンスが表示されます。 名前を付けます:
名前列の鉛筆アイコンをクリックします。
「名前の編集」ポップアップボックスに名前を入力し、 「保存」ボタンをクリックします。
画面上部の「接続」ボタンをクリックします。 次のようなウィンドウがポップアップ表示されます。 SSH クライアントタブを開き、指示に従ってインスタンスに接続します。 Windows を使用している場合は、コマンドの.pemを.ppkに置き換えます。
AWS 環境がセットアップされたので、次はNGINX Open SourceまたはNGINX Plusをインストールします。これらは 30 日間無料で試すことができます。 どちらのオプションもこのチュートリアルのコンテキストでは機能しますが、 NGINX Plusの高度な機能をさらに詳しく調べたい場合は、無料トライアルをリクエストしてください。
ほとんどの Linux ディストリビューションと BSD バリアントでは、NGINX Open Source を標準パッケージ リポジトリで利用できるようにしていますが、通常は最新バージョンではありません。 NGINX Open Source をnginx.orgから直接ダウンロードすることをお勧めします。 NGINX リポジトリを Ubuntu パッケージ マネージャー ( apt
) に追加するには、いくつかの追加手順が必要です。
NGINX Open Source をインストールするには、次の手順に従います。
NGINX 署名キーをダウンロードします。
$ sudo wget http://nginx.org/keys/nginx_signing.key
キーを追加します:
$ sudo apt-key nginx_signing.keyを追加します
ディレクトリを/etc/aptに変更します。
$ cd /etc/apt
ソースリストファイルを編集し、最後に次のテキストを追加します。
deb http://nginx.org/packages/ubuntu フォーカル nginx
deb-src http://nginx.org/packages/ubuntu フォーカル nginx
注記: これらの各行の焦点
キーワードは、Ubuntu 20.04 に対応しています。 別のバージョンの Ubuntu を使用している場合は、そのリリースコード名の最初の単語を置き換えます (たとえば、Ubuntu 18.04 の場合はbionic
)。
NGINX ソフトウェアを更新します。
$ sudo apt-getアップデート
NGINX をインストールします。
$ sudo apt-get nginxをインストール
プロンプトが表示されたらY
と入力します。
NGINXを起動します:
$ sudo systemctl nginx.service を起動します
ステータスを確認します:
$ sudo systemctl ステータス nginx.service
「Web ページを開く」に進みます。
NGINX Plus をまだお持ちでない場合は、 30 日間の無料トライアルにサインアップしてください。
試用サブスクリプションが利用可能になったことを通知する電子メールを受信したら、提供された手順に従ってセキュリティ証明書、秘密鍵、JWT をダウンロードし、NGINX Plus をインストールします。
インストールが完了し、NGINX Plus が実行中になったら、 「Web ページを開く」に進みます。
NGINX ソフトウェアを起動したら、サイトのコンテンツを配信するように設定する前に、NGINX と NGINX Plus がデフォルトで提供する Web ページを確認してください。 次の手順に従ってください。
まだアクセスしていない場合は、EC2 ダッシュボードの[インスタンス]タブに移動します。 (1 つの方法は、コンソールの上部ナビゲーション バーで[サービス] をクリックし、コンピューティングセクションで[EC2] をクリックし、左側のナビゲーション列で[インスタンス] をクリックすることです。)
テーブルを右にスクロールして、インスタンスのパブリック IP アドレスが[パブリック IPv4 アドレス]列に表示されるまでスクロールします (スクリーンショットでは 3.22.51.xxx です)。 アドレスを選択し、貼り付けバッファにコピーします。
新しいブラウザタブを開き、アドレスをアドレスバーに貼り付けます。 デフォルトの「Welcome to nginx!」ページが表示され、NGINX はインストールされ実行されているが、まだ構成されていないことが示されます。
NGINX または NGINX Plus の動作するバージョンをインストールしたら、それを有効に活用しましょう。 まず、いくつかのファイルとディレクトリを設定します。
まだホーム ディレクトリにいない場合は、ディレクトリをホーム ディレクトリに変更します。 以下の手順では、 /home/ubuntuです。
public_htmlというディレクトリを作成し、そこに移動します。
public_htmlディレクトリに、 index.htmlというファイルとapplication1というディレクトリを作成します。
application1ディレクトリに、テキストが入ったapp1.htmlというファイルを作成します。
ホームディレクトリに戻ります。
dataというディレクトリを作成します。
データディレクトリに、 imagesというディレクトリを作成します。
NGINX または NGINX Plus の最初の使用例は、Web ページを介してユーザーにページと画像を提供することです。
ディレクトリを/etc/nginx/conf.dに変更します。
NGINX または NGINX Plus がデフォルトの設定ファイルとして使用しないように、 default.conf の名前をdefault.conf.bakに変更します。
次の設定を含むserver1.confというファイルを作成します。
サーバー { ルート /home/ubuntu/public_html;
場所 /application1 { }
場所 /images {
ルート /home/ubuntu/data;
}
}
ディレクトリを~/data/imagesに変更します。
提供したい画像を見つけて、ディレクトリ ( ~/data/images ) にコピーします。 例として、次のコマンドはNGINX ロゴをコピーします。
$ curl -o NGINX-logo.png https://www.nginx.com/wp-content/uploads/2021/11/NGINX-logo-2020.png
NGINX または NGINX Plus をリロードします。
$ sudo nginx -s リロード
Web ブラウザで、次の URL にあるイメージをリクエストします。NGINX -serverは、EC2 インスタンスのパブリック IP アドレスです。
https:// NGINX-server /images/NGINX-logo.png
また、アプリケーションにアクセスして、何が得られるかを確認してください。
https:// NGINX-server /application1/app1.html
これで、Web サーバーが動作するようになったので、トラフィックをルーティングするように構成する方法を学習します。 この機能により、トラフィックを他のサーバーに渡すことができるようになり、負荷分散を設定するための大きなステップとなります。 次の手順に従ってください。
~/dataディレクトリに、 server2というディレクトリを作成します。
server2ディレクトリに、 sampleAppというディレクトリを作成します。
sampleAppディレクトリに、テキストが入ったindex.htmlという名前のファイルを作成します。
ディレクトリを/etc/nginx/conf.dに変更します。
次の設定を含むserver2.confというファイルを作成します。
サーバー { listen 8080;
root /home/ubuntu/data/server2;
}
次のように、最初のlocation
ブロックにproxy_pass
ディレクティブを追加してserver1.conf を変更します。
サーバー { ルート /home/ubuntu/public_html;
場所 /application1 {
proxy_pass http://localhost:8080/sampleApp;
}
場所 /images {
ルート /home/ubuntu/data;
}
}
ディレクティブのドキュメント: location
、 proxy_pass
、 root
、 server
NGINX または NGINX Plus をリロードします。
$ sudo nginx -s リロード
ブラウザで次の URL にアクセスし、 「ページと画像の提供」でアクセスしたときと比べて何が変わったかを確認します。
https:// NGINX-server /application1/index.html
なるほど! これで、NGINX を実行する Ubuntu インスタンスが作成され、プロキシ サーバーとして実行できるようになりました。
追加のユースケースのために AWS に NGINX と NGINX Plus をデプロイする手順については、デプロイ ガイドを参照してください。
このチュートリアルでは、NGINX または NGINX Plus を設定して、インターネット経由でファイルや画像を提供し、リバース プロキシとして機能する方法を学習しました。 NGINX についてさらに詳しく学習したい場合は、このチュートリアルのトピックに加えて、負荷分散、ロケーション ベースのルーティング、セキュリティなど、Web サービスとアプリケーション配信のより基本的な内容をカバーする NGINX Core トレーニング コース (インストラクター主導またはオンデマンド) をご利用いただけます。 また、 nginx.orgのドキュメントとNGINX Plus 管理者ガイドも確認してください。特に記載がない限り、記事は NGINX Plus だけでなく NGINX Open Source にも適用されます。
「このブログ投稿には、入手できなくなった製品やサポートされなくなった製品が参照されている場合があります。 利用可能な F5 NGINX 製品およびソリューションに関する最新情報については、 NGINX 製品ファミリーをご覧ください。 NGINX は現在 F5 の一部です。 以前の NGINX.com リンクはすべて、F5.com の同様の NGINX コンテンツにリダイレクトされます。"