$30 off During Our Annual Pro Sale. View Details »

WebサーバとAPサーバの違い

yosi
August 08, 2022

 WebサーバとAPサーバの違い

yosi

August 08, 2022
Tweet

More Decks by yosi

Other Decks in Programming

Transcript

  1. ココカラ勉強会
    WEBサーバ

    APサーバの違い
    発表者 よし

    View Slide

  2. 主な内容
    Webの仕組み
    大まかな枠組み
    Webの三層構造について
    Webサーバとは
    APサーバとは
    まとめ
    本日の流れ

    View Slide

  3. 今まで話した
    LT内容
    ・WWWの歴史
    ・HTTP、TCP/IPについて
    ・Linuxについて
    ・ブラウザについて(Webレンダリング)
    ・,,,,etc

    View Slide

  4. 「WebサーバとAPサーバ
    ってよく聞くけど、何が
    違うんでしょ??」
    最近この質問に詰まってしまいま
    した。

    View Slide

  5. AP
    サーバ
    プログラムが処理を行い
    動的コンテンツをつく
    る。
    WEB
    サーバ
    クライアントから来たリ
    クエストをAPサーバに渡
    したり、静的コンテンツ
    を送る。

    View Slide

  6. アプリケーション
    ミドルウェア
    ハードウェア
    OS

    View Slide

  7. 役割
    ①静的コンテンツを送る
    ②動的コンテンツをつくる
    ようにAPサーバにリクエス
    トし、作られたHTMLをク
    ライアントに返す
    Apache HTTP Server
    ・OSS
    ・マルチプロセスの
     プロセス駆動アーキテクチャ
     →C10K問題
    Webサーバ
    主なWebサーバ
    NGINX
    ・OSS
    ・シングルスレッドモデルの
    イベント駆動アーキテクチャ
    特徴
    多くのリクエストが来る
    が、一つに対する処理の不
    可は軽い

    View Slide

  8. 役割
    ①Webサーバのリクエストをもとに、
    JavaやPHP等で作られたAppで動的コン
    テンツの作成
    ②必要があればDBサーバへアクセスし
    データのCRUDを行い、加工したHTML
    をWebサーバに返す。
    APサーバ
    主なWebサーバ
    Tomcat
    from Java
    Puma /unicorn
    from ruby
    gunicorn
    from Python
    php_mod
    php
    (モジュール)
    特徴
    リクエストの数は少ないが、一つに対す
    る処理が重い

    View Slide

  9. WEBのしくみ
    まずは簡単に

    View Slide

  10. クライアント サーバ
    クライアントサーバーシステム
    リクエスト
    レスポンス
    サイト見たい! データ送るね!

    View Slide

  11. クライアント サーバ
    クライアントサーバーシステム
    今回はこの
    サーバにつ
    いてもっと
    深掘りまし
    ょう!
    サイト見たい! データ送るね!

    View Slide

  12. クライアント サーバ
    クライアントサーバーシステム
    リクエスト
    レスポンス
    サイト見たい! HTML送るね!
    サーバの歴史 ①静的サイトのみを返していた。

    View Slide

  13. 同じ情報がかえってくるだけ
    じゃなくて、動的な機能をつ
    けたいなぁ。

    View Slide

  14. 動的
    コンテンツ
    見る人や、時間によって
    変化するコンテンツ

    ECサイト
    SNSサービス
    静的
    コンテンツ
    いつ見ても変わらない、
    同じコンテンツ

    ホームページ
    ブログ

    View Slide

  15. クライアント
    Webサーバ
    サイト見たい!
    動的アプリケーションの誕生
    サーバの歴史 ②CGIの登場! 新しいHTML作るね!
    Webサーバ内
    Perl
    インタプリンタ
    CommonGatewayInterface
    (異なる機器感で通信が可能に)
    アプリケーション
    ノード1

    View Slide

  16. CGIめっちゃ遅いし、Perl大
    規模むいてないな,,,
    もっと柔軟にかつ、高速にで
    きひんかな〜

    View Slide

  17. クライアント
    Apache
    (Webサーバ)
    プログラム
    サイト見たい!
    Javaでより高速、大規模化!
    サーバの歴史 ③モジュールで高速化!
    mod_jk
    ajp13
    プロトコル
    Tomcat
    (APサーバ)
    ノード

    View Slide

  18. クライアント
    Apache
    (Webサーバ)
    サイト見たい!
    WEB三層構造の完成!
    サーバの歴史 ④それぞれサーバを分けて拡大!
    mod_jk
    Tomcat
    (APサーバ)
    MySQL
    (DBサーバ)
    ノード1 ノード3
    ノード2

    View Slide

  19. WEBサーバ DBサーバ
    APサーバ
    WEBの3層構造

    View Slide

  20. クライアント
    Apache
    (Webサーバ)
    ケースによって変化可能!
    APサーバを分けて処理を分散
    mod_jk Tomcat1
    (APサーバ)
    Bの処理Tomcat2へ
    Tomcat2
    (APサーバ)
    Aの処理はTomcat1へ

    View Slide

  21. クライアント
    サイト見たい!
    小規模ならこれもOK!
    Web/APサーバの構成も可能!
    Tomcat
    (Web/APサーバ)
    MySQL
    (DBサーバ)
    ノード2
    ノード1

    View Slide

  22. 三層構造のメリット
    ・責務の分担で処理を軽減で
    きる。
    ・バグがあった場合に、その
    サーバのみのデバッグです
    む。
    ・拡張性があり、柔軟に対応
    できる。
    デメリット
    ・費用がサーバー台分高い。

    View Slide

  23. 御清聴ありがとうございました!

    View Slide