Web 毎週1回Apacheのmoduleについて調べて書くコーナー
[調べる]mod_search_rast †[調べる]mod_rewrite †出来ること
モジュールはfull URL
環境変数 †CGI/SSL環境変数を使う リソースに対してロジカルなウェブ閲覧を行う
物理的なシステム閲覧を行う
Virtual Host †メイン設定でのVirutal Host設定には引き継がれないので、<VirtualHost?>の間に RewriteEngine On RewriteOptions Inherit と書く必要がある。 RewriteBase? †.... フィルター関連 †http://httpd.apache.org/docs/2.2/ja/mod/core.html AddOutputFilterByType? †MIME-type に応じて出力フィルタを割り当てる。Apache 2.0.33 以降で使用可能。ただし 2.1 以降で非推奨。 AddOutputFilter? †ファイル名の拡張子をサーバからの応答を処理するフィルタに マップする mod_actions †ディアタイプやリクエストメソッドに応じて CGI スクリプトを実行する機能を提供 Action †特定のハンドラやコンテントタイプに対して CGI を実行するように設定 # MIMEでimage/gifだった場合は/cgi-bin/images.cgiを実行する。 Action image/gif /cgi-bin/images.cgi # 拡張子が.xyzだった場合は、/cgi-bin/program.cgiを実行する AddHandler my-file-type .xyz Action my-file-type /cgi-bin/program.cgi ※オプションの virtual 修飾子 <Location /news> SetHandler news-handler Action news-handler /cgi-bin/news.cgi virtual </Location> Script †method というメソッドを使ってリクエストが行なわれたときに cgi-script を実行するという動作を追加します。(form method="post"とか)。 メソッド名は大文字小文字を区別します。メソッドを処理するリソース(PHPとか)があれば、そちらが優先される。GETはindex.html?hogeと言う感じで、引数がある時だけ呼ばれる Script GET /cgi-bin/search Script PUT /~bob/put.cgi mod_dumpio †Apacheが受け取ったリクエスト、送ったレスポンスをエラーログに書き出す。データのロギングは、SSL 復号化の直後 (入力) と SSL 暗号化の直前 (出力) に行なわれる。ファイルサイズが大きいのでデバックの時だけにしましょう。 DumpIOInput(Apache 2.1.3 ~) †エラーログにすべての入力データをダンプ DumpIOInput On DumpIOOutput(Apache 2.1.3 ~)) †エラーログにすべての出力データをダンプ DumpIOOutput On mod_substitute †mod_substitute.c 出来る事
Ver.
設定方法
例 <Location /> AddOutputFilterByType SUBSTITUTE text/html Substitute s/foo/bar/ni <-s/対象パターン/置換内容/フラグ </Location> <Location /html/seminar > AddOutputFilterByType SUBSTITUTE text/html Substitute "s|<BR */?>|<br />|i" </Location> <Location /html/form/ > AddOutputFilterByType SUBSTITUTE text/html Substitute "s| 1990 | 2008 |q" </Location> <Location /nohtml> AddOutputFilter SUBSTITUTE .html AddType text/plain .html Substitute s/<[^>]+>// </Location> フラグ
mod_speling †/httpd-2.2.10/modules/mappers/mod_spelling.c 作成者: Alexei Kosut 出来ること
リクエストしているディレクトリ配下のファイルに対して比較を行う ミススペルの定義
<IfModule mod_speling.c> CheckSpelling On </IfModule> CheckCaseOnly? †大文字小文字のチェックをするかどうかの設定 CheckCaseOnly on|off (default) CheckSpelling? †スペルチェックを行うかどうかの設定 CheckSpelling on|off(default) 要注意点
mod_status †
出来る事 †default
httpd.confでオプションExtendedStatus? Onにした場合
設定方法 †<Location /server-status> SetHandler server-status Order Deny,Allow Deny from all Allow from .foo.com </Location> アクセスURI http://your.server.name/server-status リフレッシュ機能 http://your.server.name/server-status?refresh=N でN 秒毎に更新する事が出来る mod_proxy †
拡張機能 †mod_proxy +
その他拡張機能
フォワードプロキシ †Client -- Proxy Server -- Origin Server 流れ
使われ方
備考 設定の例 ProxyRequests On ProxyVia On <Proxy *> Order deny,allow Deny from all Allow from internal.example.com </Proxy> リバースプロキシ †Client -- Proxy Server -- Origin Server
使われ方 設定の例 ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass /foo http://foo.example.com/bar ProxyPassReverse /foo http://foo.example.com/bar mod_headers †
例 (HTML) <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Expires" content="Fri, 10 Oct 2008 12:00:00 GMT"> </head> 例(httpd.conf) #ディレクトリ単位 <Directory "/var/www/"> Header append Cache-Control no-cache #Header append Cache-Control s-maxage=900 #900秒後に有効期限が切れるようにする Header append Pragma no-cache 〜略〜 </Directory> #特定の拡張子のみ <Files *.html> Header append Cache-Control no-cache Header append Pragma no-cache </Files> #複数のファイルを指定 <FilesMatch "\.(gif|jpe?g|png)$"> Header append Cache-Control public </Files> mod_expires †キャッシュデータの有効期限を設定する <Directory "/var/www/"> ExpiresActive On #Expires/Cache-Controlヘッダを有効にする ExpiresDefault "access plus 1 month" #アクセスの1ヵ月後に有効期限が切れる ExpiresByType image/gif "access plus 15 minutes" ExpiresByType image/gif A900 #アクセス15分後にキャッシュの有効期限が切れるようにする ExpiresByType image/jpg "modification plus 5 hours" ExpiresByType image/jpg M18000 #ファイル更新日時の5時間後にキャッシュの有効期限が切れるようにする Expires/Pragma(HTTP/1.1未対応ブラウザ用) 例 : <meta http-equiv="Pragma" content="no-cache" /> 例 : <meta http-equiv="Expires" content="0" /> 例 : <meta http-equiv="Expires" content="86400" /> #24時間後 mod_cache †
mod_disk_cache †ディスクにキャッシュデータを保存する場合に使用 <IfModule mod_cache.c> <IfModule mod_disk_cache.c> CacheRoot /var/www/cache #キャッシュデータの保管先 CacheEnable disk / #キャッシュ対応URL CacheDirLevels 5 #保管するディレクトリ階層の深さ CacheDirLength 3 #キャッシュデータを保管するディレクトリ名の文字数 </IfModule> </IfModule> mod_mem_cache †メモリにキャッシュデータを保存する場合に使用 <IfModule mod_cache.c> <IfModule mod_mem_cache.c> CacheEnable mem / #キャッシュ対応URL MCacheSize 65536 #キャッシュメモリの最大値(kbyte) MCacheMaxObjectCount 100 #保管されるドキュメントの最大数 MCacheMinObjectSize 1 #保管されるドキュメントの最小サイズ MCacheMaxObjectSize 2048 #保管されるドキュメント1つあたりの最大サイ ズ(byte) </IfModule> </IfModule> # MCacheSize > MCacheMaxObject ファイルディスクリプタだけをキャッシュする事が可能
mod_file_cache †ファイル情報をメモリに展開する
その他 †HostnameLookups? off |