LoginSignup
0
2

More than 1 year has passed since last update.

ApacheとTomcatについて(基礎編)

Last updated at Posted at 2023-03-26

はじめに

Java一年未満の方へ研修用
JavaでWEBアプリケーションを構築して行く際に、なくてはならない
Apache、Tomcatに関して少し掘り下げて紹介

対象

・Java一年未満

Apacheとは

・Webサーバ用のソフトウェア。
 正式名称はApache HTTP Server。
 世界中で最も使用されているWebサーバソフトウェア。

Webサーバとは

・ブラウザからのHTTPリクエストに対して、HTMLファイルなどをレスポンスとして返してくれるサーバのこと。

Tomcatとは

・アプリケーションサーバのこと。
・Java Servletを動かす時に使うソフトでWebコンテナのこと(サーブレットコンテナとも言う)
・簡易的なWebサーバとしての機能も持っている
・正式名称はApache Tomcatという

アプリケーションサーバとは

・Webシステムにアプリケーションプログラムを動作させるサーバのこと。
※Webシステムは、「Webサーバー」「アプリケーションサーバー」「データベースサーバー」の3層構造になっており、アプリケーションサーバーはWebサーバーから受け取ったリクエストに基づいてJavaやPHP、Rubyなどを実行し、Webサーバーに処理の結果を返す。

ApacheとTomcatは何が違うのか?

・ApacheはWebサーバだが、Tomcatも簡易的なWebサーバとしての機能を持っている。
 Apacheって必要ないと思いませんか??

一般的なWebシステムを図で表すと

スクリーンショット 2023-03-24 7.40.43.png

上記の図からわかること

・クライアントはWebサーバにリクエストを送るため、最初に受けるのはApache(ApacheとTomcatがある場合)
・リクエストに対してApacheからWebアプリケーションを動作させるための実行環境(アプリケーションサーバ)であるTomcatへ必要な処理を要求する
・DBとTomcatの間にjavaが有り、そのjavaがDBをたたきにいっている。(TomcatがDBを叩くわけではない)

飲食店で例えると。。。

・Apache:ホール担当のバイト。
・Tomcat:キッチン、ホールもできる店長。
・クライアント:お客さん

Apacheがない場合

・Tomcatさんがお客さんからの注文(クライアントからのリクエスト)を受けるホールもやりつつ、調理(クライアントへのレスポンス)もやることになる。
→クライアントからの少ない注文には対応できる。

たくさんのリクエストが来た場合

・当然、Tomcatに負荷がかかり、レスポンスが遅くなり、最悪ダウンしてしまう可能性がある。
・そういった場合、Apacheを入れることで、サーバの負荷を分散させ、Tomcatには処理に専念してもらえる。
 →サーバの負荷を軽減することで、js、HTML、CSSなどの静的コンテンツの高速化ができる。

ApacheとTomcatの違いとは

★Apache
 役割:リクエストを解析すること
    ・特定IPアドレスの場合フィルタ(リクエストを許可/拒否)する
    ・特定URLの場合リダイレクトさせる
    ・特定URLの拒否
    ・SSL化による通信の暗号化
    ・リクエストに応じて特定のサーバへ処理を振り分ける
     など

★Tomcat
 役割:リクエストを元に動的処理をする
    ・リクエスト情報を元にデータを登録する
    ・リクエスト情報を元に動的ページを作成しレスポンスを作成する
    ・リクエスト情報を元にユーザを判定し、ユーザごとに異なるレスポンスを作成する
     など

まとめ

・ApacheとTomcatは役割がそれぞれある。
・リクエストが多くないシステムやツールを作る際はTomcatのみでもよい。
・大規模なものになるとApacheもあった方がよい。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2