SlideShare a Scribd company logo
Soumettre la recherche
Mettre en ligne
Webサーバ勉強会03
Signaler
oranie Narut
Suivre
•
3 j'aime
•
1,690 vues
1
sur
16
Webサーバ勉強会03
•
3 j'aime
•
1,690 vues
Télécharger maintenant
Télécharger pour lire hors ligne
Signaler
Technologie
oranie Narut
Suivre
Recommandé
Webサーバのチューニング
Yu Komiya
9.6K vues
•
20 diapositives
中小規模サービスのApacheチューニング
勲 國府田
8K vues
•
42 diapositives
Apacheチューニング
ii012014
14.1K vues
•
20 diapositives
今日から使い始めるChef
Masahiro NAKAYAMA
7.6K vues
•
34 diapositives
Ansible入門
Daiki Hayakawa
936 vues
•
16 diapositives
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
Masahiro NAKAYAMA
2.3K vues
•
27 diapositives
Contenu connexe
Tendances
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
CLARA ONLINE, Inc.
3K vues
•
47 diapositives
nginx入門
Takashi Takizawa
53.5K vues
•
73 diapositives
MTのダイナミック処理(PHP)を高速化する@サーバーサイドスクリプティング
純生 野田
3K vues
•
134 diapositives
Ansible 入門 #01 (初心者向け)
Taro Hirose
6.2K vues
•
34 diapositives
tcpdump & xtrabackup @ MySQL Casual Talks #1
Ryosuke IWANAGA
5.5K vues
•
39 diapositives
Ansible入門...?
shirou wakayama
9.5K vues
•
43 diapositives
Tendances
(20)
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
CLARA ONLINE, Inc.
•
3K vues
nginx入門
Takashi Takizawa
•
53.5K vues
MTのダイナミック処理(PHP)を高速化する@サーバーサイドスクリプティング
純生 野田
•
3K vues
Ansible 入門 #01 (初心者向け)
Taro Hirose
•
6.2K vues
tcpdump & xtrabackup @ MySQL Casual Talks #1
Ryosuke IWANAGA
•
5.5K vues
Ansible入門...?
shirou wakayama
•
9.5K vues
Webサーバ勉強会 発表資料
oranie Narut
•
1.7K vues
Hive undocumented feature
tamtam180
•
7.9K vues
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-
Daisuke Ikeda
•
3.3K vues
Performance and Scalability of Web Service
Shinji Tanaka
•
1.9K vues
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
Yasutaka Hamada
•
2.4K vues
動画共有ツール
tamtam180
•
6.9K vues
HandlerSocket plugin for MySQL
akirahiguchi
•
12.9K vues
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
Yasutaka Hamada
•
1.8K vues
10分で作る Node.js Auto Scale 環境 with CloudFormation
Kazuyuki Honda
•
4K vues
Lisp Tutorial for Pythonista : Day 4
Ransui Iso
•
5.3K vues
Handlersocket etc. 20110906
akirahiguchi
•
3.4K vues
Mod lua
do_aki
•
2.9K vues
OpenStack + Common Lisp
irix_jp
•
4.6K vues
ZabbixのAPIを使って運用を楽しくする話
Masahito Zembutsu
•
64.3K vues
En vedette
iOSバージョン差異(iOS6まで)
聡 大久保
870 vues
•
6 diapositives
Awsで構築したのだよ 03 ec2インスタンスに設定したタグをサーバから取得
聡 大久保
894 vues
•
10 diapositives
OSC2012 OSC.DB Hadoop
Shinichi YAMASHITA
1.3K vues
•
21 diapositives
Awsで構築したのだよ 02 ec2インスタンスから自分のインスタンスidを取得
聡 大久保
863 vues
•
6 diapositives
Awsで構築したのだよ 04 ec2インスタンス起動時にホスト名を変更
聡 大久保
1.6K vues
•
8 diapositives
マルウェアに学ぶ Apache+phpセキュリティ(ネット公開版)
takahashi-yugo
1.1K vues
•
31 diapositives
En vedette
(20)
iOSバージョン差異(iOS6まで)
聡 大久保
•
870 vues
Awsで構築したのだよ 03 ec2インスタンスに設定したタグをサーバから取得
聡 大久保
•
894 vues
OSC2012 OSC.DB Hadoop
Shinichi YAMASHITA
•
1.3K vues
Awsで構築したのだよ 02 ec2インスタンスから自分のインスタンスidを取得
聡 大久保
•
863 vues
Awsで構築したのだよ 04 ec2インスタンス起動時にホスト名を変更
聡 大久保
•
1.6K vues
マルウェアに学ぶ Apache+phpセキュリティ(ネット公開版)
takahashi-yugo
•
1.1K vues
続マスタN対スレーブ1レプリケーションの作り方
do_aki
•
6K vues
Webサーバの基礎知識【編集済み】
Kikunaga Taishi
•
3K vues
1 Linux入門 第6章 Webサーバーの概要
Enpel
•
968 vues
技術ドキュメント改善作戦 TDI-#1 Apache 設定ファイル(1)
Mizuhiro Kaimai
•
1.4K vues
恐るべきApache, Web勉強会@福岡
Aya Komuro
•
2.5K vues
awsを学ぶ上で必要となる前提知識(DB)
聡 大久保
•
1.2K vues
AWSを学ぶ上で必要となる前提知識(SSL)
聡 大久保
•
1.2K vues
10分で分かるバックアップとレプリケーション
Takashi Hoshino
•
2.8K vues
Awsを学ぶ上で必要となる前提知識(DNS/LB)
聡 大久保
•
1.8K vues
AWS入門編 EC2/ELBを使った、ブログシステム構築ハンズオントレーニング
聡 大久保
•
3.7K vues
Awsで構築したのだよ 06 ec2インスタンス起動時にCloudWatchのアラームを追加する
聡 大久保
•
1.8K vues
Awsで構築したのだよ 05 プロセス監視、メモリ使用率、ディスク使用率をCloudWatchのカスタムメトリクスに追加したい
聡 大久保
•
4K vues
MongoDB日本語紹介資料
ippei_suzuki
•
2.6K vues
分散仮想ストレージシステム紹介
OSSラボ株式会社
•
7.1K vues
Similaire à Webサーバ勉強会03
Selenium webdriver使ってみようず
Oda Shinsuke
12.2K vues
•
56 diapositives
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
normalian
10.4K vues
•
42 diapositives
社内勉強会資料(Varnish Module)
Iwana Chan
7K vues
•
35 diapositives
CodeIgniter入門
Sho A
13.1K vues
•
49 diapositives
IT Pro のための PowerShell スクリプティング
Kazuki Takai
11.5K vues
•
74 diapositives
Apache Auroraの始めかた
Masahito Zembutsu
14.1K vues
•
46 diapositives
Similaire à Webサーバ勉強会03
(20)
Selenium webdriver使ってみようず
Oda Shinsuke
•
12.2K vues
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
normalian
•
10.4K vues
社内勉強会資料(Varnish Module)
Iwana Chan
•
7K vues
CodeIgniter入門
Sho A
•
13.1K vues
IT Pro のための PowerShell スクリプティング
Kazuki Takai
•
11.5K vues
Apache Auroraの始めかた
Masahito Zembutsu
•
14.1K vues
20091030cakephphandson 01
Yusuke Ando
•
1.3K vues
Grails 2.0.0.M1の話
Tsuyoshi Yamamoto
•
2.8K vues
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
Yuki Takei
•
21.3K vues
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
kenjis
•
26.5K vues
10分でわかるFuelPHP @ 2011/12
kenjis
•
4.3K vues
T69 c++cli ネイティブライブラリラッピング入門
伸男 伊藤
•
5.2K vues
Pythonによる並列プログラミング -GPGPUも-
Yusaku Watanabe
•
5K vues
おまえらこのライブラリ使ってないの? m9 (2013-07)
Toru Furukawa
•
3.1K vues
PHPUnit でテスト駆動開発を始めよう
Yuya Takeyama
•
16.1K vues
Openresty
ogawatti
•
1K vues
PHP勉強会 #51
Takako Miyagawa
•
3.5K vues
ネットワークエンジニアのための Puppet / Chef
npsg
•
8.1K vues
How to Make Own Framework built on OWIN
Yoshifumi Kawai
•
38.1K vues
Statically detecting vulnerability under memory pressure usingexhaustive search
Ruo Ando
•
398 vues
Plus de oranie Narut
Devsumi2019 dynamodb
oranie Narut
908 vues
•
75 diapositives
Jvm operation casual talks
oranie Narut
8.8K vues
•
60 diapositives
cassandra 100 node cluster admin operation
oranie Narut
8.5K vues
•
112 diapositives
Fluentd casual
oranie Narut
5.2K vues
•
29 diapositives
Webサーバ勉強会#5
oranie Narut
1.6K vues
•
21 diapositives
Webサーバ勉強会#4
oranie Narut
2.3K vues
•
16 diapositives
Plus de oranie Narut
(10)
Devsumi2019 dynamodb
oranie Narut
•
908 vues
Jvm operation casual talks
oranie Narut
•
8.8K vues
cassandra 100 node cluster admin operation
oranie Narut
•
8.5K vues
Fluentd casual
oranie Narut
•
5.2K vues
Webサーバ勉強会#5
oranie Narut
•
1.6K vues
Webサーバ勉強会#4
oranie Narut
•
2.3K vues
MySQL Casual LT : MySQL Upgrade 5.0 to 5.5
oranie Narut
•
6.2K vues
財務分析勉強会挨拶
oranie Narut
•
1.1K vues
Webサーバ勉強会02
oranie Narut
•
1.7K vues
It勉強会の勉強会
oranie Narut
•
1.2K vues
Dernier
さくらのひやおろし2023
法林浩之
76 vues
•
58 diapositives
JJUG CCC.pptx
Kanta Sasaki
6 vues
•
14 diapositives
01Booster Studio ご紹介資料
ssusere7a2172
209 vues
•
19 diapositives
概念モデリングワークショップ 基礎編
Knowledge & Experience
19 vues
•
71 diapositives
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
157 vues
•
63 diapositives
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
208 vues
•
33 diapositives
Dernier
(10)
さくらのひやおろし2023
法林浩之
•
76 vues
JJUG CCC.pptx
Kanta Sasaki
•
6 vues
01Booster Studio ご紹介資料
ssusere7a2172
•
209 vues
概念モデリングワークショップ 基礎編
Knowledge & Experience
•
19 vues
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
•
157 vues
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
•
208 vues
概念モデリングワークショップ 設計編
Knowledge & Experience
•
10 vues
DLゼミ: MobileOne: An Improved One millisecond Mobile Backbone
harmonylab
•
41 vues
テストコードってすごい.pptx
cistb220msudou
•
72 vues
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化
Knowledge & Experience
•
6 vues
Webサーバ勉強会03
1.
Webサーバ勉強会 #3
発表資料
2.
自己紹介
id:oranie @oranie •渋谷の緑色のグループ会社で、グループ内でも余り知られていないシステムでなん か色々やる簡単なお仕事しています。 •緑色のみんながよく知っているサービスの裏側とかは全く知らないですw
3.
ざっくり内容 ①モジュールって何やっているの? ②どうやって動いているの?
4.
発表内容
初心者が Apacheモジュールとはなんぞや? をとりあえず調べてみた。
5.
そもそも
Apacheのモジュール (mod_rewriteやmod_authやら色々) は一杯あるけど、 そもそもどんな動作をしているの?
6.
そもそも② まずApacheはリクエストを受け取ると、 どのような動きで処理をしているのか?
7.
Apacheの処理フェイズについて Apache はリクエストを複数の フェイズ
(phase) で処理。 典型的な静的ファイルの場合 (1) 要求された URI を実際のファイルの場所に変換する (2) ファイルを読み出してクライアントに送信する (3) リクエストをログに記録する というざっくり分けて三つのフェイズがある。 ※細かく分けるともっとあります。今日は割愛。 例えばmod_auth_basicによるbasic認証が掛かっている場合は、1のフェイズ にリクエストを処理、次に認証掛かっているディレクトリなら認証処理をして 問題なければ2のフェイズに・・・と言った具合。
8.
Apacheの主な動作 図で表すと
9.
基本処理を踏まえ、
モジュールを動作させるには? ①Cで動作させたい処理を記述したモジュールを作る。 ②Apacheの適切なフェイズにモジュールで定義した hook関数を設定する。 ③モジュールによってはhttpd.config等に必要な設定し て、Apache再起動。 簡単に言うと、これでモジュールは動作する。 さっきの図で追加補足すると
11.
実際にモジュールを作ってみる モジュールを作る一番簡単な方法。 ①apxsコマンドで雛形を作成。 # apxs -n
test -g オプションの意味:-n モジュール名の設定 -g 雛形の作成 実行すると、Makefile mod_test.c modules.mk こんなファイルが自動で作成。 ②雛形を元に処理を記述。 ③/usr/sbin/apxs -c -i mod_test.c オプションの意味:-cでコンパイル、-iでインストール でインストール。 ④雛形のコメントに書かれているように LoadModule test_module modules/mod_test.so <Location> SetHandler test </Location> を記述してapacheを再起動。
12.
mod_testの中身(長いのでコメントは省略) 40 #include "httpd.h"
58 static void test_register_hooks(apr_pool_t *p) 41 #include "http_config.h" 59 { 42 #include "http_protocol.h" 60 ap_hook_handler(test_handler, NULL, NULL, APR_HOOK_MIDDLE); 43 #include "ap_config.h" 61 } 44 62 45 /* The sample content handler */ 63 /* Dispatch list for API hooks */ 46 static int test_handler(request_rec *r) 64 module AP_MODULE_DECLARE_DATA test_module = { 47 { 65 STANDARD20_MODULE_STUFF, 48 if (strcmp(r->handler, "test")) { 66 NULL, /* create per-dir config structures */ 49 return DECLINED; 67 NULL, /* merge per-dir config structures */ 50 } 68 NULL, /* create per-server config structures */ 51 r->content_type = "text/html"; 69 NULL, /* merge per-server config structures */ 52 70 NULL, /* table of config file commands */ 53 if (!r->header_only) 71 test_register_hooks /* register hooks */ 54 ap_rputs("The sample page from mod_test.cn", r); 72 }; 55 return OK; 56 }
13.
mod_testを実行してみると・・・ モジュールを読み込んで、http://hogehoge/testにアクセスすると、 「The sample page
from mod_test.c」って表示されましたね? 54 ap_rputs("The sample page from mod_test.cn", r); の内容が表示されました。 処理フローとしては ①クライアントからのリクエストを受信、解析 ②Apache内部で処理が順番に行われ、今回登録したハンドラが「test」へのリ クエストを引っ掛ける ③引っ掛かったリクエストに対して、設定した内容をクライアントに返す。
14.
mod_kaomojiを作ってみる もう少し改造して、例えば「うちの会社のtxt/htmlページには 全てヘッダに「(・∀・)」を表示させたい。でもヘッダファイル書いて読み込ませる のは忘れるかも知れないし面倒臭い(゚Д゚)y─┛~~」と言った場合に、 あるディレクトリにアクセスするとヘッダに「(・∀・)」を 必ず追加するモジュール。 実際にアクセスして実演します。
15.
まとめ ①モジュールはApacheの各処理フェイズで任意の制御・処理を 行いたい時に利用する。 ②モジュール内部は実処理部分、Apacheに登録するフック関 数、モジュールの定義をしている構造体。 ③仕組みが分かればかなり自由になんでも出来る。→なので、
まずApacheの処理を覚えると、各モジュールの動作理解も 進むんじゃないでしょうか? ④Cで作成する必要があるので、敷居は高いがその分高速らしい (普通に考えればそうだろうけど、実際に同じような処理書いてベンチ取っていないから誰か・・・!) ⑤簡単な表示とかならすぐ作れるっぽいですね!僕は心優しい人のコピペで 文字列ちょろっと変えたぐらいですが・・・。 ⑥動作を調べたい時にCが読めないと、泣きながら調べる羽目 になります。
16.
参考にした本・サイト(というかほとんどコピペです。)
オライリー:Apacheハンドブック 20章~21章 DSAS開発者の部屋:apache module 開発事始め http://dsas.blog.klab.org/archives/50574774.html Asial Blog:手軽に出来るApacheモジュール開発 http://blog.asial.co.jp/715 他、多数の「apache モジュール 開発」で検索ヒットしたサイトの皆様 非常に為になる解説本当にありがとうございます。m(_ _)m もう少し勉強して、これからは少しは自分で解説を・・・。 あと、モジュール絡みの本は軒並み絶版になっているので、再版される事を期待。