Webアプリケーションは、Webサーバー、アプリケーションサーバー、およびデータベースサーバーで構成されていることをどこかで読みました。これら3つの違いは何ですか?
ウェブサイトをホストしたときに覚えていたのは、ウェブサイトのコントロールパネルへのhttps
ログインだけで、すべてのファイルをhtdocs
フォルダーに入れていたからです。 Webサーバー、アプリケーションサーバー、データベースサーバーのような3つの別個のものはありませんでした。
Webサーバー-
Webサイトがホストされているサーバー。このサーバーには、IIS、ApacheなどのWebサーバーがインストールされます。
アプリケーションサーバー-
データベース、Webサービスなどを使用している作成済みアプリケーションのサーバー。このアプリケーションサーバーは、Webサービスでラップされたビジネスレイヤー、スケジュールされたジョブ、Windowsサービスなどをホストします。
データベースサーバー-
データベースサーバーには、Oracle、Sql Server、MySqlなどの1つ以上のデータベースがホストされます。
htdocs
を参照している場合、それはWebサーバーです。使用しているデータベースは、データベースサーバーである別のサーバーにインストールする必要があります。アプリケーションサーバーは、同じWebサーバーマシンにインストールすることもできます。
リファレンス- 展開パターン
これはしばしば混乱を招きます。
まず、「サーバー」は物理的なもの(コンピューター)または論理的なもの(ソフトウェア)を指します。
Web、アプリケーション、およびデータベースサーバーソフトウェアは、すべて同じ物理サーバーマシンで実行することも、複数の物理マシンに分散することもできます。ほとんどの大規模なWebサイトには複数のマシンがあります。ほとんどの「消費者」ホスティングパッケージは単一のボックスで実行されます。
論理的な分離は次のとおりです。
WebサーバーはHTTP(S)要求を処理し、これらの要求を「ハンドラー」に渡します。ファイルリクエスト(HTMLページ、画像、CSS、JavaScriptなど)の組み込みハンドラーがあります。管理できないリクエストのハンドラーを追加できます。アプリケーションサーバーによって配信される動的ページ。 WebサーバーはHTTP仕様を実装し、要求および応答ヘッダーを管理する方法を知っています。
アプリケーションサーバーは、動的ページを作成するリクエストを処理します。そのため、ハードドライブに保存されているHTMLページを提供する代わりに、エンドユーザーに送信されるHTMLを動的に生成します。このための一般的な言語/フレームワークは、Java/JSP、.Net(aspx)、PHP、Ruby(on Rails or not))、Pythonなど。ほとんどの場合、このアプリケーションサーバーソフトウェアは、Webサーバーと同じ物理サーバーマシンで実行されています。
データベースサーバーソフトウェアは、アプリケーションが構造化された情報を保存する場所です。通常、これは、アプリケーションサーバーがプログラミング言語を使用して、「ユーザーxがバスケットに何個持っているか?」などの質問をすることができるカスタムソフトウェアを意味します。例としては、MySQL、SQL Server、Oracle(すべて「リレーショナルデータベース」)、MongoDB、RedisおよびCouchDB(「NoSQL」ソリューション)があります。
データベースソフトウェアは、Webサーバーと同じ物理マシン上で実行できますが、通常、サイトのスケーリングが必要な場合、別個の物理ハードウェアでホストされるのは最初のものです。