WeSeong ログイン
← 記事一覧に戻る
ウェブ

3層構成、Nginx (Webサーバー)、Tomcat (Webアプリケーションサーバー)

3層構成、Nginx (Webサーバー)、Tomcat (Webアプリケーションサーバー)

次回の記事の予告... 🫠 3層構成の完全な実現のため、既存のNginxサーバーとTomcatサーバーにデータベースサーバーを連携させることを検討しています。


Ⅰ. 概要

3層構成について解説します。3層構成は、一般的にはWebサーバー - Webアプリケーションサーバー (WAS) - データベースサーバーで構成されます。この基本的な構成は、サービスを提供する際に変わりませんが、アーキテクチャによって、詳細な構成や環境設定は変更できます。実践として、Nginxサーバーを構築し、Webサーバーとして動作させます。Nginxサーバーが正常に動作した場合、Tomcatを基盤としてWebアプリケーションサーバーをインストールします。その後、NginxサーバーとTomcatサーバーを連携させ、Webサーバーにアクセスした際にWebアプリケーションサーバーが正しく接続されるかを確認します。



Ⅱ. 3層構造


https://docs.aws.amazon.com/ko_kr/whitepapers/latest/serverless-multi-tier-architectures-api-gateway-lambda/three-tier-architecture-overview.html (AWSのホワイトペーパーの概要) サーバーレス、マルチティアアーキテクチャ、APIゲートウェイ、Lambdaに関する、3層アーキテクチャの概要。

3層構造上記の写真を見ると、一つのサービスを提供する際には 3つのサーバーが連携して動作する構造これは、クライアント(顧客)に対して直接的に行われる、主にフロントエンドの作業を意味します。 ウェブサーバークライアントがサービスを利用する際に、特定の操作を実行したり、データベースと連携して、クライアントに希望する情報を表示したりする。 WASサーバーそこにあります。WASサーバーは データベースサーバー この基本構造に基づいて、データベースの検索、データの挿入、修正、削除などの操作も可能です。データベースは、データを保存するためのシステムです。この基本構造は、サービスを提供する際に変更されることはありませんが、 建築そのため、具体的なサービス提供方法については、状況に応じて変更される可能性があります。


建築システム構成と動作原理を説明し、構成要素間の関係やシステム外部環境との関係を記述すること、また、システム構成要素に対する設計と実装を支援するレベルを記述することなどが含まれます。 このような説明は、理解が難しいかもしれません。もう少し簡単に言うと、ウェブサイトを構築する際に、デザインはどうするか、会員登録時にどのような個人情報を取得するか、特定の掲示板では、一般会員、非会員などに対してどのような権限を与えるか、ECサイトの場合、レビューは誰が投稿できるのか、非会員でも注文できるのか、といった、特定のウェブサイトの目的に合わせて、全体としてどのようにサービスが提供され、どのように表示され、どのように管理されるかを構成することが、アーキテクチャであると考えることができます。アーキテクチャには本当に多くの種類があり、学ぶべき範囲も非常に広いです。さらに詳しく知りたい場合は、検索することをお勧めします。


つまり、ユーザーがネ이버のURLを入力してアクセスした場合、Webサーバーは IPアドレスからのアクセス(私たちが行うのは、単に…) www.naver.com たとえ「~である」と入力しても、視覚的には見えない場所に DNSサーバーこれは、NeerverのWebサーバーにアクセスする方法です。Webサーバーは、Webサーバーと連携する役割を担っているため、Webサーバーから提供される 多様なサービス当社が利用するたびに、必要なサービスを呼び出してくれます。例えば、ログイン時に、WASサーバーで実装されたログイン関連のサービスを呼び出すだけでなく、Yahoo!のニュース、ショッピング、スポーツのタブなどをクリックして関連サービスを利用する際にも、同様にWASサーバーで実装されたサービスがWebサーバーから呼び出されます。 結局、WASサーバーは、実際のサービスを提供する役割を担っていると言えます。 しかし、ログイン時に表示される会員情報、検索時に表示される様々な情報、ニュース、ショッピング商品など、膨大なデータは、WASサーバーではなく、別の場所に保存されている。 データベースサーバーそのため、WASサーバーはデータベースサーバーと連携しています。 提供されるサービスに適したデータを検索し、取得する。 例えば、ブログに記事を投稿する場合、WASサーバーは、データベースサーバーに新しいブログ記事をデータとして保存、修正、削除の処理を依頼することができます。データベースサーバーは、実際に保存、修正、削除の処理を行い、データを保管します。 DBサーバーは、ウェブサイト上で利用できる膨大なデータが保存されている場所と考えることができます。


※ これは簡潔な説明であり、詳細な内容はさらに多く存在します。ネットワークのアーキテクチャやファイアウォールなど、セキュリティの構成方法、複数のWebサーバーとWebサーバー間の接続方法など、詳細については、今後学習を進めながら追加していきます。



Ⅲ. Nginx

実習に入る前に、基本的なコマンドを理解しておくと役立ちます。

指示

機能の説明

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

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

sudo apt remove nginx

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

sudo systemctl stop nginx (サーバー)

管理者権限で動作しているサーバーを停止する。

sudo systemctl start nginx

管理者権限でサーバーを起動します。

sudo systemctl nginxを再起動

管理者権限でサーバーを再起動します。

sudo systemctl で nginx を起動するように設定

管理者権限で、サーバーを起動プログラムとして登録する。(Windowsの起動プログラムと類似。)

sudo systemctl で nginx の起動を停止する

管理者権限で、サーバーを起動プログラムから削除する。

これらは、サーバーのインストール、削除、起動、再起動、停止といった操作に関連するシステムコマンドです。これらのコマンドを理解しておくと、より効率的にサーバーを管理できます。

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 >> 파일명

ファイルの内容を確認する際に役立つ 「猫」 「指示に従って」> ファイル名を入力すると、そのファイル名でテキストファイルを作成できます。もし同じファイル名の場合、「>「この場合は、内容が上書きされ、その下に「」と表示されます。>>「の場合、内容が追加されます。」


次に、作成した index.html ファイルの内容が Nginx サーバーにアクセスした際に正しく表示されるかを確認します。 上記で説明した「netstat -anp | grep nginx」コマンドを使用して、サーバーが 聴く まず、接続状態を確認し、正常であればすぐに接続を試みます。


'ifconfig'そのIPアドレスを通じてアクセスすることで、アクセスできます。アクセスすると、



素晴らしい成果が見られる!


※ 補足 HTTP 応答 関連するステータスコードを共有したいと思います。これは簡潔なまとめなので、詳細についてはご自身で調べていただくことをお勧めします。

ステータスコード

状態の説明

100番台

クライアントがサーバーにリクエストを送信し、サーバーもそのリクエストを待っている状態です。

200番台

クライアントとサーバーが正常に通信している場合に表示されます。

300番台

クライアントは、処理を完了するために追加の操作(リダイレクト)が必要であることをサーバーに伝えます。

400番台

クライアントが、サーバーから必要なリソースを取得できない場合に発生します。

500番台

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



Ⅳ. Tomcat

次に、Tomcatをインストールします。 WASサーバー実際に、Tomcatの導入は少し複雑に見えるかもしれませんが、実際にはそれほど難しくありません。

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


まず、上記の Tomcatのウェブページからtar.gzファイルをダウンロードファイルをダウンロードできます。最新バージョンは9.0.82ですが、他のバージョンもウェブサイトからダウンロードできます。インストールが必要なファイルの場所は、プログラムのインストール関連のディレクトリです。 /usr/local 「wget」コマンドを使ってダウンロードしてください。その後、`/usr/local` フォルダに移動し、wgetでダウンロードした Tomcat ファイルを解凍してください。


このような形式で保存されます。ファイル名は、解凍後の状態のまま、または自由に変更しても構いません。


中に入ってみると、このようなものが置かれているはずです。 /conf設定に関連するディレクトリ /libこの場所には、データベースサーバーとの接続に必要なコネクタを設置する予定です。 /ウェブアプリケーション ディレクトリは、JSP、CSS、HTMLなど、ウェブサービスに関連するファイルを登録する場所です。その後、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 スクリプトファイルを実行してください。


正常に動作し、サーバーが 聴く 状態を確認することができます。Tomcatの場合、デフォルトのポートは 8080これは重要な情報です。覚えておくと役立ちます。


したがって、Tomcat サーバーのIPアドレスと8080ポート番号で接続し、正常に動作することを確認したら、これでWebサーバーとの接続が可能になります。 Nginx サーバー~について /etc/nginx/sites-available/default 設定ファイルを修正します。


これらの `proxy_pass` と `index.jsp` を追加してください。 「sudo systemctl restart nginx」そして、WEBサーバーのIPアドレスにアクセスすると、



Tomcat (Web Application Server) との接続が正常に確立されていることが確認できます!



おまけ

WebサーバーとWASサーバーのセットアップと接続は、比較的簡単だと感じました。その後、データベースサーバーの構築は少し難しくなるため、今回改めて構築し、以前のように最初から構築し、学習を進めていこうと考えています。😄