ココカラ勉強会WEBサーバとAPサーバの違い発表者 よし
View Slide
主な内容Webの仕組み大まかな枠組みWebの三層構造についてWebサーバとはAPサーバとはまとめ本日の流れ
今まで話したLT内容・WWWの歴史・HTTP、TCP/IPについて・Linuxについて・ブラウザについて(Webレンダリング)・,,,,etc
「WebサーバとAPサーバってよく聞くけど、何が違うんでしょ??」最近この質問に詰まってしまいました。
APサーバプログラムが処理を行い動的コンテンツをつくる。WEBサーバクライアントから来たリクエストをAPサーバに渡したり、静的コンテンツを送る。
アプリケーションミドルウェアハードウェアOS
役割①静的コンテンツを送る②動的コンテンツをつくるようにAPサーバにリクエストし、作られたHTMLをクライアントに返すApache HTTP Server・OSS・マルチプロセスの プロセス駆動アーキテクチャ →C10K問題Webサーバ主なWebサーバNGINX・OSS・シングルスレッドモデルのイベント駆動アーキテクチャ特徴多くのリクエストが来るが、一つに対する処理の不可は軽い
役割①Webサーバのリクエストをもとに、JavaやPHP等で作られたAppで動的コンテンツの作成②必要があればDBサーバへアクセスしデータのCRUDを行い、加工したHTMLをWebサーバに返す。APサーバ主なWebサーバTomcatfrom JavaPuma /unicornfrom rubygunicornfrom Pythonphp_modphp(モジュール)特徴リクエストの数は少ないが、一つに対する処理が重い
WEBのしくみまずは簡単に
クライアント サーバクライアントサーバーシステムリクエストレスポンスサイト見たい! データ送るね!
クライアント サーバクライアントサーバーシステム今回はこのサーバについてもっと深掘りましょう!サイト見たい! データ送るね!
クライアント サーバクライアントサーバーシステムリクエストレスポンスサイト見たい! HTML送るね!サーバの歴史 ①静的サイトのみを返していた。
同じ情報がかえってくるだけじゃなくて、動的な機能をつけたいなぁ。
動的コンテンツ見る人や、時間によって変化するコンテンツ例ECサイトSNSサービス静的コンテンツいつ見ても変わらない、同じコンテンツ例ホームページブログ
クライアントWebサーバサイト見たい!動的アプリケーションの誕生サーバの歴史 ②CGIの登場! 新しいHTML作るね!Webサーバ内PerlインタプリンタCommonGatewayInterface(異なる機器感で通信が可能に)アプリケーションノード1
CGIめっちゃ遅いし、Perl大規模むいてないな,,,もっと柔軟にかつ、高速にできひんかな〜
クライアントApache(Webサーバ)プログラムサイト見たい!Javaでより高速、大規模化!サーバの歴史 ③モジュールで高速化!mod_jkajp13プロトコルTomcat(APサーバ)ノード
クライアントApache(Webサーバ)サイト見たい!WEB三層構造の完成!サーバの歴史 ④それぞれサーバを分けて拡大!mod_jkTomcat(APサーバ)MySQL(DBサーバ)ノード1 ノード3ノード2
WEBサーバ DBサーバAPサーバWEBの3層構造
クライアントApache(Webサーバ)ケースによって変化可能!APサーバを分けて処理を分散mod_jk Tomcat1(APサーバ)Bの処理Tomcat2へTomcat2(APサーバ)Aの処理はTomcat1へ
クライアントサイト見たい!小規模ならこれもOK!Web/APサーバの構成も可能!Tomcat(Web/APサーバ)MySQL(DBサーバ)ノード2ノード1
三層構造のメリット・責務の分担で処理を軽減できる。・バグがあった場合に、そのサーバのみのデバッグですむ。・拡張性があり、柔軟に対応できる。デメリット・費用がサーバー台分高い。
御清聴ありがとうございました!