Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
165
Help us understand the problem. What is going on with this article?
@tanayasu1228

図解で解説!! Apache、Tomcatってなんなの?

ログイン画面出ているのに404になった。
そこで、関連してくるApacheとTomcatについて書いていこうと思います!

はじめに

Apacheってなんだ?!
Tomcatってなんだ?!
お前達は一体どこにいるんだ?!
何をしてるんだ?!
そんなApacheとTomcatの疑問に関してまとめていきます。

※概念部分のみで、以降には技術的なコードを書いてませんのでご了承を...

 

環境

OS macOS Catalina バージョン10.15.7

 
 

Apacheって何?

Webサーバ用のソフトのこと
正式名称はApache HTTP Serverという
世界中で最も使用されているWebサーバソフト

 

Webサーバって何?

ブラウザからのHTTPリクエストに対して、HTMLファイルなどをレスポンスとして返してくれるサーバのこと
 
今回でいうとPCなどにApacheというWebサーバ用のソフトを入れることでWebサーバになる!

 

Tomcatって何?

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

 

ここで疑問に思うことがありますよね!

・ ApacheはWebサーバ用のソフト
・ Tomcatも簡易的なWebサーバとしての機能も持っている

 
• • • ??

だったら、Tomcatあれば、Apache要らなくね?! という疑問。。

ここからはタイトルにもあった通り、図解での説明に入ります!!

図解で説明

1. まずは全体のイメージを掴む

スクリーンショット 2021-05-14 1.03.56.png

【 全体図から分かること 】

  • クライアントはWEBサーバに対してリクエストを送るので、ApacheとTomcatがある場合にクライアントと最初に繋がるのはApacheになる

  • リクエストに対してApacheからWebアプリケーションを動作させるための実行環境であるTomcatへ必要な処理を要求する

  • DBとTomcatの間にJAVAが有り、そのJAVAがDBをたたきにいったり、必要なテンプレートを作成したりしている。(TomcatがDBをたたきにいくわけではないということ)

 
 
次は、簡易的なWebサーバとしての機能も持っているTomcatあれば、Apache要らなくね?! という疑問を考えてみる。

ここは、エンジニアの先輩がめちゃくちゃわかりやすく教えてくれたので、その例えを使って書いていきます!!
 

2.Apacheがないとどうなるのか?

ホール担当のバイト(Apacheさん)と、ホールもキッチンもできるオーナー(Tomcatさん)のお話

【 少々のリクエスト&レスポンスなら対応できる 】

スクリーンショット 2021-05-14 2.49.19.png

クライアントからの少ない注文に対しては対応できる!!

 

スクリーンショット 2021-05-14 2.49.27.png
メニューに無い注文がきたらそんなもんうちには無い!!と対応できる(404エラー)

 

 

【 沢山のリクエストが来てそのレスポンスを返さなくてはいけない場合どうなる? 】

スクリーンショット 2021-05-14 3.10.31.png

当然...負担がかかることでレスポンスが遅くなり、ダウンする原因に。。

 
 

3. Apache入れるとどうなるのか?

スクリーンショット 2021-05-14 3.28.43.png

・ 設定の柔軟性、拡張性が高くなる
・ サーバ負荷を減らすことで、Js、CSS,HTMLの静的コンテンツが高速化できる
(条件によってはTomcatだけの方が早い時もあるみたい)

 
 
 

4. ついでに図から404と500番系のエラーを考える

【 Not Found 404エラー】

スクリーンショット 2021-05-14 7.44.03.png

〜 クライアント側に問題あり 〜
Apacheのリソースに無い、クライアント側の無茶振りな注文には404エラーを出す
 
 
 

【 Internal Server Error 500系のエラー】

スクリーンショット 2021-05-14 7 59 02
〜 サーバー側に問題あり 〜
クライアント側の要求は良いけど、サーバ側に不具合がある場合に500系のエラーを出す
 
 

【 エラー出る場所を切り分ける】

ちなみに、
Webサーバで出る404の特徴、Webコンテナで出る404特徴があります。

【 Apacheがあかん時 のNot Found 404エラー】

みんな大嫌いな真っ赤っかのエラーが出る
 ブラウザがあかんのでリクエスト関連を見るべし!

【 Tomcatがあかん時 のNot Found 404エラー】

下のような紺色のエラーが出る
スクリーンショット 2021-05-15 10.12.38.png

【 JAVAがあかん時 のNot Found 404エラー】

(例)
ログイン画面は表示できているけど、ログインボタン押すと404が発生する時など

おまけ

ちなみに、Apache以外のWebサーバ用のソフトっていうとこんなのがあるみたい

  • IIS(アイアイエス) : Windowsの標準Webサーバソフト
  • nginx(エンジンエックス) : 大規模システムに使われるWebサーバソフト         

ApacheとNginxの使い分けって?

Apache Nginx
アクセス急増時のサーバーへの負荷 いっきに負荷増 アクセスに比例して負荷は急激に増えない
その結果Webサーバーの動き 遅くなり、ダウンしやすくなる 処理速度は維持し、ダウンしにくい

※RailsだとNginxが使われることが多い.....みたい。

165
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
165
Help us understand the problem. What is going on with this article?