WeSeong ログイン
← 記事一覧に戻る
WEB

3Tier, Nginx(WEB), Tomcat(WAS)

3Tier, Nginx(WEB), Tomcat(WAS)

次ページへ… 🫠3Tierを完了するため、既存のNginxサーバーとTomcatサーバーを統合しようとしています。


Ⅰ. 概要

3Tier構造を見てみましょう。3Tierは通常、Webサーバ、WASサーバ、DBサーバで構成されます。サービスを提供する際に、この基本的なフレームワークは変わりませんが、アーキテクチャ(Architecture)詳細な構成や設定によっては、これらが変更されることがあります。この実習では、Nginx サーバを構築し、Web サーバとして機能させます。Nginx サーバが正しく機能している場合、 Tomcatこれに基づいて、WASサーバのインストールを進めます。NginxサーバとTomcatサーバを接続した後、WEBサーバにアクセスするときに、WASサーバが接続されているかどうかを確認します。



Ⅱ. 3階層


https://docs.aws.amazon.com/ko_kr/whitepapers/latest/serverless-multi-tier-architectures-api-gateway-lambda/three-tier-architecture-overview.html

3層アーキテクチャ上の画像を見ると、一つのサービスを提供する場合 3台のサーバが稼働している構成意味します。デフォルトでは、クライアント(Client)ユーザーに直接表示されるフロントエンドの作業 WEBサーバクライアントがサービスを使用すると、特定のアクションを実行し、データベースとやり取りして、クライアントに希望する情報を表示します。 WASサーバWAS サーバがあります。 DBサーバ データベースにクエリを実行したり、データを挿入したり、データの変更や削除などの操作も行うことができます。DBサーバーとは、データを格納するデータベースのことです。サービスを提供する際にこの基本的なフレームワークは変わりませんが、 アーキテクチャ (Architecture)サービスを提供するために適用される各ポリシーの詳細は異なる場合があります。


※ アーキテクチャとは何ですか (Architecture) システムの構成や運用原理を説明する、コンポーネントとシステムの外部環境との関係を示す、システムコンポーネントの設計と実装に対するサポートレベルを説明するなどの概念を指します。これはわかりにくいかもしれません。もっと簡単に言うと、ウェブサイトを作るときには、どのようにデザインするか、登録時にどの程度の個人情報を収集するか、一般メンバー、非メンバー、特定の掲示板にどの程度の権限を与えるか、ショッピングモールの場合は誰がレビューを残せるか、非メンバーが注文を出せるかなど、特定のウェブサイトの目的に沿ったサービスの提供、表示、管理方法を「アーキテクチャ」と呼びます。アーキテクチャにはさまざまな種類があり、非常に広範囲にわたるため、多くの勉強が必要です。詳しく知りたい場合は、検索してみてください。


つまり、ユーザーがNaverのアドレスを入力して接続すると、WEBサーバ IP 住所からのアクセスdo(単に www.naver.com 入力しても表示されません。 DNSサーバを通じて これは WEB サーバにアクセスするためです。WEB サーバは WAS サーバへのゲートウェイとして機能するため、 さまざまなサービス例えば、ログインすると、WEB サーバは WAS サーバで実装されたログイン関連のサービスを呼び出します。また、Naver でニュース、ショッピング、スポーツのタブをクリックすると、WEB サーバはまた WAS サーバで実装されたサービスを呼び出します。 結局のところ、WAS サーバーが実際のサービスプロバイダーです。 ただし、ログイン時の会員情報や検索時に表示されるさまざまな情報、ニュース、ショッピングアイテムなど、大量のデータはWASサーバに保存されていません。 DB(データベースサーバつまり、WAS サーバは DB サーバに接続されています。 提供されるサービスに適したデータを取得し、インポートします。 たとえば、ユーザーがブログエントリを投稿すると、WAS サーバは、新たに投稿されたブログエントリをデータとして保存、変更、または削除するように DB サーバに要求します。DB サーバは、実際の保存、変更、削除を実行し、データを保存します。 DB サーバーは、ウェブサイトで見かけるすべてのデータが保存されている場所と考えてください。


※ これは単純な 3 層アーキテクチャなので、さらに詳細な内容があります。ネットワークアーキテクチャの設定やセキュリティのためのファイアウォール、複数の WAS サーバと WEB サーバの接続方法など、さらに研究し、詳細を追加していきます。



Ⅲ. Nginx

実習を開始する前に、いくつかの基本的なコマンドを知っておくと便利です。

コマンド

機能の説明

sudo apt install nginx (パッケージ名)

パッケージを管理者権限でインストールします。

sudo apt remove nginx

管理者権限でインストールされたパッケージを削除します。

sudo systemctl stop nginx(サーバ)

管理者権限で実行されているサーバを停止してください。

sudo systemctl start nginx

管理者権限でサーバーを実行します。

sudo systemctl restart nginx

管理者権限でサーバを再起動してください。

sudo systemctl enable nginx

管理者権限で、サーバをWindowsのスタートアッププログラムと同様にスタートアッププログラムとして登録します。

sudo systemctl disable nginx

管理者権限を持つユーザーで、サーバーの起動プログラムを削除します。

これらは、サーバーのインストール、削除、起動、再起動、停止を行うためのシステムコマンドです。これらのコマンドを知っていると便利です。

最も一般的に使用されているWebサーバ Nginxこれをインストールし、3層のデプロイメント演習を行います。 Tomcat確かにありますが、それぞれに長所と短所があります。簡単に言えば、 Nginx交通の場合、パフォーマンスは Tomcatもっと優れています。 Tomcatは 多くのサブプロジェクトがあり、機能性やモジュールの拡張において強みがあります。


  1. Nginx サーバーをインストールします。

  • sudo apt update

  • sudo apt install nginx



※ nginx サーバーをインストールした瞬間 systemctl(システムコマンドで制御されるように登録されており、サーバは自動的に起動します。'netstat -anp | grep nginx'調べればきっと見つかるでしょう。


2. Nginx サーバーに接続する

ファイル構造について考えると、/etc 通常は設定ファイル /var 通常、これにはデータファイルやログファイルが含まれています。 Nginx 同様に、サーバーでは /etc/nginx設定ファイルがあります /var/www/htmlこれは実装ソースファイルを含んでいます。


/sites-available/default に移動すると、設定ファイルを詳細に表示できます。


WASサーバと統合するために必要な設定を登録する際に、このセクションに戻ります。


/var/www/html今 index.html ファイルを作成し、実際に WEB サーバに接続します。このディレクトリに入ったら、vi エディタを使用して index.html一つ作り、内容を簡単に記入しましょう。


私はこのように書きましたが、ここにヒントがあるなら vim パッケージをインストールすると、vi エディタを使うことが大幅に容易になります。あるいは

cat > 파일명
cat >> 파일명

ファイルの内容を表示する場合 'cat' 「`」コマンドを使用して> ファイル名を入力すると、その名前のテキストファイルを作成できます。ファイル名が同じ場合、'>' この場合、コンテンツは上書きされ、以下の '>>'この場合、コンテンツが追加されます。


今、私は作りました index.html 次は、Nginx サーバーからファイルにアクセスするときに、その内容が正しく表示されるかどうかを確認する時です。netstat -anp | grep nginx'を通じて サーバ LISTEN 状態を確認した後、正しい場合はすぐに接続してみてください。


'ifconfig'を通じて は対応する IP アドレスです。これを入力すると、 が表示されます



結果が表示されます!


※ TIPとして、HTTPレスポンスに関連して見られるステータスコードを紹介します。これは簡単なまとめですので、詳細についてはご参照ください。

ステータスコード

状態の説明

100 シリーズ

クライアントはサーバーに要求を送信し、サーバーも要求を待機しています。

200 シリーズ

これは、クライアントとサーバが正常に通信している場合に見られます。

300 シリーズ

サーバは、クライアントに要求を完了するための追加の操作(リダイレクト)を実行するよう要求しています。

400 シリーズ

クライアントがサーバから対応するリソースを受信できない場合に発生します。

500 シリーズ

これは、サーバ自体にエラーがあることを意味します。



Ⅳ. Tomcat

それから Tomcatそれをインストールします WASサーバまず、Tomcat を使用した実践的な演習から始めます。インストールは少し複雑に見えますが、実際はそれほど難しくありません。

Apache Tomcat® - Apache Tomcat 9 ソフトウェアのダウンロード


まず、上記 Tomcat Webページ上 tar.gz最新バージョンは9.0.82で、その他のバージョンはWebサイトからダウンロードできます。インストールするファイルのパスは、プログラムのインストールディレクトリです。 /usr/local 中に 'wget'このファイルは、コマンド / を使用してダウンロードできます。usr/local パスに移動した後 wget受け取った tomcat ファイルを抽出すると


このようになります。解凍後はファイル名をそのままにしておくことも、自由に変更することもできます。


の中を見ると、/confは設定ファイルのディレクトリであり、/libはライブラリが格納されている場所です。また、後ほどDBサーバー接続ののための Connectorをこのパスにインストールします。/webappsは、JSP, CSS, HTMLなどのWebサービス関連ファイルを登録する場所です。次に、JAVA言語をインストールします。

sudo apt install openjdk-17-jdk

Java 17がインストールされています。最近では、Spring Frameworkも17以降のバージョンをサポートしており、バージョン8の場合はサポート期間が長くないため、多くの人が17のバージョンを使用していると思います。Tomcatサーバが正常に動作しているかどうかを確認するには、 /usr/local/apache-tomcat-9.0.82/bin パスを入力してください startup.sh スクリプトファイルを実行するだけです。 Tomcatは 'apt' コマンドを使用するのではなく、個別にインストールされたため、サーバーは自動的に起動しません。


サーバをシャットダウンするには、shutdown.shスクリプトファイルを実行するだけです。


サーバは正常に動作しています。 LISTEN 状態を確認することができます。 Tomcatこの場合、デフォルトのポートは 8080それは知っておくべきことです。


Tomcat サーバーが IP アドレスとポート番号 8080 で起動していることを確認したので、WEB サーバーに接続するために Nginx サーバー /etc/nginx/sites-available/default コンフィギュレーション ファイルを変更できます。


だから proxy_passと index.jspそれを追加してください。 'sudo systemctl restart nginx'そして、WEBサーバを設定します IP アドレスにアクセスすると、



Tomcat(WAS)サーバへの接続が正常に行われていることがわかります!



レビュー

WEBサーバとWASサーバのインストールと接続のプロセスは難しくなかったと思います。後で掲載するDBサーバは少し難しいので、再び最初から試してみて、再構築して掲載したときと同じように勉強していきたいと思います。😄