Apache HTTP サームãƒãƒ¼ã‚¸ãƒ§ãƒ³ 2.2
説明: | レスãƒãƒ³ã‚¹ã®ãƒœãƒ‡ã‚£ã‚’クライアントã«é€ã‚‹å‰ã«å¤–部プãƒã‚°ãƒ©ãƒ ã§å‡¦ç†ã™ã‚‹ |
---|---|
ステータス: | Extension |
モジュールè˜åˆ¥å: | ext_filter_module |
ソースファイル: | mod_ext_filter.c |
mod_ext_filter
ã§ã¯ フィルタ
ã®æ…£ã‚Œè¦ªã—ã‚“ã å˜ç´”ãªãƒ—ãƒã‚°ãƒ©ãƒŸãƒ³ã‚°ãƒ¢ãƒ‡ãƒ«ãŒæä¾›ã•れã¾ã™ã€‚ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’
使ãˆã°ã€æ¨™æº–入力ã‹ã‚‰èªã¿è¾¼ã‚“ã§ã€æ¨™æº–å‡ºåŠ›ã«æ›¸ã出ã™ãƒ—ãƒã‚°ãƒ©ãƒ
(ã™ãªã‚ã¡ Unix å½¢å¼ã®ãƒ•ィルタコマンド) ã‚’ Apache ã®ãƒ•ィルタã«ã™ã‚‹ã“ã¨ãŒ
ã§ãã¾ã™ã€‚ã“ã®ãƒ•ã‚£ãƒ«ã‚¿ã®æ©Ÿæ§‹ã¯ã€Apache API å‘ã‘ã«æ›¸ã‹ã‚ŒãŸ Apache
サーãƒãƒ—ãƒã‚»ã‚¹å†…ã§å®Ÿè¡Œã•れる専用ã®ãƒ•ィルタよりもãšã£ã¨é…ã„ã§ã™ãŒã€
以下ã®ã‚ˆã†ãªåˆ©ç‚¹ã‚‚ã‚りã¾ã™ã€‚
性能ã®å•題ã«ã‚ˆã‚Šå®Ÿé‹ç”¨ã«é©ã•ãªã„ã¨ã—ã¦ã‚‚ã€ãƒ•ィルタã®ãƒ—ãƒãƒˆã‚¿ã‚¤ãƒ—用ã®
環境ã¨ã—ã¦ã¯ mod_ext_filter
ã¯ä½¿ãˆã¾ã™ã€‚
# mod_ext_filter directive to define a filter
# to HTML-ize text/c files using the external
# program /usr/bin/enscript, with the type of
# the result set to text/html
ExtFilterDefine c-to-html mode=output \
intype=text/c outtype=text/html \
cmd="/usr/bin/enscript --color -W html -Ec -o - -"
<Directory "/export/home/trawick/apacheinst/htdocs/c">
# core directive to cause the new filter to
# be run on output
SetOutputFilter c-to-html
# mod_mime directive to set the type of .c
# files to text/c
AddType text/c .c
# mod_ext_filter directive to set the debug
# level just high enough to see a log message
# per request showing the configuration in force
ExtFilterOptions DebugLevel=1
</Directory>
注: ã“ã® gzip ã®ä¾‹ã¯ãƒ‡ãƒ¢ç”¨ã§ã™ã€‚実用的ãªå®Ÿè£…ã¯
mod_deflate
ã‚’å‚ç…§ã—ã¦ãã ã•ã„。
# mod_ext_filter directive to define the external filter
ExtFilterDefine gzip mode=output cmd=/bin/gzip
<Location /gzipped>
# core directive to cause the gzip filter to be
# run on output
SetOutputFilter gzip
# mod_header directive to add
# "Content-Encoding: gzip" header field
Header set Content-Encoding gzip
</Location>
# mod_ext_filter directive to define a filter
# which runs everything through cat; cat doesn't
# modify anything; it just introduces extra pathlength
# and consumes more resources
ExtFilterDefine slowdown mode=output cmd=/bin/cat \
preservescontentlength
<Location />
# core directive to cause the slowdown filter to
# be run several times on output
#
SetOutputFilter slowdown;slowdown;slowdown
</Location>
# mod_ext_filter directive to define a filter which
# replaces text in the response
#
ExtFilterDefine fixtext mode=output intype=text/html \
cmd="/bin/sed s/verdana/arial/g"
<Location />
# core directive to cause the fixtext filter to
# be run on output
SetOutputFilter fixtext
</Location>
# Trace the data read and written by mod_deflate
# for a particular client (IP 192.168.1.31)
# experiencing compression problems.
# This filter will trace what goes into mod_deflate.
ExtFilterDefine tracebefore \
cmd="/bin/tracefilter.pl /tmp/tracebefore" \
EnableEnv=trace_this_client
# This filter will trace what goes after mod_deflate.
# Note that without the ftype parameter, the default
# filter type of AP_FTYPE_RESOURCE would cause the
# filter to be placed *before* mod_deflate in the filter
# chain. Giving it a numeric value slightly higher than
# AP_FTYPE_CONTENT_SET will ensure that it is placed
# after mod_deflate.
ExtFilterDefine traceafter \
cmd="/bin/tracefilter.pl /tmp/traceafter" \
EnableEnv=trace_this_client ftype=21
<Directory /usr/local/docs>
SetEnvIf Remote_Addr 192.168.1.31 trace_this_client
SetOutputFilter tracebefore;deflate;traceafter
</Directory>
#!/usr/bin/perl -w
use strict;
open(SAVE, ">$ARGV[0]")
or die "can't open $ARGV[0]: $?";
while (<STDIN>) {
print SAVE $_;
print $_;
}
close(SAVE);
説明: | 外部フィルタを定義 |
---|---|
æ§‹æ–‡: | ExtFilterDefine filtername parameters |
コンテã‚スト: | サーãƒè¨å®šãƒ•ァイル |
ステータス: | Extension |
モジュール: | mod_ext_filter |
ExtFilterDefine
ã¯ã€å®Ÿè¡Œã™ã‚‹ãƒ—ãƒã‚°ãƒ©ãƒ ã‚„
引数ãªã©ã€å¤–部フィルタã®ç‰¹æ€§ã‚’定義ã—ã¾ã™ã€‚
filtername ã¯å®šç¾©ã™ã‚‹ãƒ•ィルタã®åå‰ã‚’指定ã—ã¾ã™ã€‚
ã“ã®åå‰ã¯å¾Œã§ SetOutputFilter
ãƒ‡ã‚£ãƒ¬ã‚¯ãƒ†ã‚£ãƒ–ã§æŒ‡å®šã§ãã¾ã™ã€‚åå‰ã¯ç™»éŒ²ã•れるã™ã¹ã¦ã®ãƒ•ィルタã§
一æ„ã§ãªãã¦ã¯ãªã‚Šã¾ã›ã‚“ã€‚ç¾æ™‚点ã§ã¯ã€ãƒ•ィルタã®ç™»éŒ² API ã‹ã‚‰ã¯
エラーã¯å ±å‘Šã•れã¾ã›ã‚“。ã§ã™ã‹ã‚‰ã€é‡è¤‡ã™ã‚‹åå‰ã‚’使ã£ã¦ã—ã¾ã£ãŸã¨ãã§ã‚‚
ユーザã«ã¯ãã®ã“ã¨ã¯å ±å‘Šã•れã¾ã›ã‚“。
ç¶šãパラメータã®é †ç•ªã¯é–¢ä¿‚ç„¡ãã€ãれらã¯å®Ÿè¡Œã™ã‚‹å¤–部コマンドã¨ã€
ä»–ã®ç‰¹æ€§ã‚’定義ã—ã¾ã™ã€‚cmd=
ã ã‘ãŒå¿…é ˆã®ãƒ‘ラメータã§ã™ã€‚
指定å¯èƒ½ãªãƒ‘ラメータã¯:
cmd=cmdline
cmd=
ã‚ーワードã¯å®Ÿè¡Œã™ã‚‹å¤–部コマンドを指定ã—ã¾ã™ã€‚
プãƒã‚°ãƒ©ãƒ åã®å¾Œã«å¼•æ•°ãŒã‚ã‚‹å ´åˆã¯ã€ã‚³ãƒžãƒ³ãƒ‰è¡Œã¯å¼•用符ã§å›²ã‚€
å¿…è¦ãŒã‚りã¾ã™ (例ãˆã°ã€cmd="/bin/mypgm
arg1 arg2"
ã®ã‚ˆã†ã«)。プãƒã‚°ãƒ©ãƒ ã¯
シェル経由ã§ãªãã€ç›´æŽ¥å®Ÿè¡Œã•れã¾ã™ã®ã§ã€é€šå¸¸ã®ã‚·ã‚§ãƒ«ç”¨ã®
エスケープã¯å¿…è¦ã‚りã¾ã›ã‚“。プãƒã‚°ãƒ©ãƒ ã®å¼•æ•°ã¯ç©ºç™½ã§åŒºåˆ‡ã‚‰ã‚Œã¾ã™ã€‚
プãƒã‚°ãƒ©ãƒ ã®å¼•æ•°ã®ä¸€éƒ¨ã¨ãªã‚‹å¿…è¦ã®ã‚る空白ã¯ãƒãƒƒã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã§ã‚¨ã‚¹ã‚±ãƒ¼ãƒ—
ã§ãã¾ã™ã€‚引数ã®ä¸€éƒ¨ã«ãªã‚‹ãƒãƒƒã‚¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ã¯ãƒãƒƒã‚¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ã§
エスケープã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚標準㮠CGI 環境変数ã«åŠ ãˆã¦ã€
環境変数 DOCUMENT_URI, DOCUMENT_PATH_INFO, and
QUERY_STRING_UNESCAPED ãŒãƒ—ãƒã‚°ãƒ©ãƒ ã®ãŸã‚ã«è¨å®šã•れã¾ã™ã€‚mode=mode
mode=output
(デフォルト)
を使ã„ã¾ã™ã€‚リクエストを処ç†ã™ã‚‹ãƒ•ィルタã«ã¯ mode=input
を使ã„ã¾ã™ã€‚mode=input
㯠Apache 2.1 以é™ã§ä½¿ç”¨ã§ãã¾ã™ã€‚intype=imt
intype=
ãŒæŒ‡å®šã•れã¦ã„れã°ã€ãƒ•ã‚£ãƒ«ã‚¿ã¯æŒ‡å®šã•れã¦ã„ãªã„
ドã‚ュメントã«ã¯é©ç”¨ã•れãªããªã‚Šã¾ã™ã€‚outtype=imt
PreservesContentLength
PreservesContentLength
ã‚ーワードã¯ãƒ•ィルタãŒ
content length (訳注: コンテントã®é•·ã•)
を変更ã—ãªã„ã¨ã„ã†ã“ã¨ã‚’指定ã—ã¾ã™ã€‚ã»ã¨ã‚“ã©ã®ãƒ•ィルタã¯
content length を変更ã™ã‚‹ãŸã‚ã€ã“れã¯ãƒ‡ãƒ•ォルトã§ã¯ã‚りã¾ã›ã‚“。
フィルタãŒé•·ã•を変ãˆãªã„ã¨ãã¯ã€ã“ã®ã‚ーワードを指定ã™ã‚‹ã¨
よã„ã§ã—ょã†ã€‚ftype=filtertype
disableenv=env
enableenv=env
説明: | mod_ext_filter ã®ã‚ªãƒ—ションをè¨å®š |
---|---|
æ§‹æ–‡: | ExtFilterOptions option [option] ... |
デフォルト: | ExtFilterOptions DebugLevel=0 NoLogStderr |
コンテã‚スト: | ディレクトリ |
ステータス: | Extension |
モジュール: | mod_ext_filter |
ExtFilterOptions
ディレクティブã¯
mod_ext_filter
ã®ç‰¹åˆ¥ãªå‡¦ç†ç”¨ã®ã‚ªãƒ—ションを
指定ã—ã¾ã™ã€‚Option ã«ã¯ä»¥ä¸‹ã®ã©ã‚Œã‹ã‚’指定ã—ã¾ã™ã€‚
DebugLevel=n
DebugLevel
ã§ mod_ext_filter
ã®ç”Ÿæˆã™ã‚‹ãƒ‡ãƒãƒƒã‚°ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®ãƒ¬ãƒ™ãƒ«ã‚’è¨å®šã§ãã¾ã™ã€‚
デフォルトã§ã¯ã€ãƒ‡ãƒãƒƒã‚°ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã¯ç”Ÿæˆã•れã¾ã›ã‚“。
ã“れ㯠DebugLevel=0
ã¨è¨å®šã™ã‚‹ã®ã¨åŒã˜ã§ã™ã€‚
æ•°å—ãŒå¤§ãããªã‚Œã°ãªã‚‹ã»ã©ã€ã‚ˆã‚Šå¤šãã®ãƒ‡ãƒãƒƒã‚°ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒ
生æˆã•れã€ã‚µãƒ¼ãƒã®æ€§èƒ½ã¯è½ã¡ã¾ã™ã€‚数値ã®å®Ÿéš›ã®æ„味ã¯
mod_ext_filter.c
ã®å…ˆé è¿‘ãã® DBGLVL_ 定数ã®
定義ã§èª¬æ˜Žã•れã¦ã„ã¾ã™ã€‚
注: デãƒãƒƒã‚°ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’ Apache ã®ã‚¨ãƒ©ãƒ¼ãƒã‚°ã«
ä¿å˜ã™ã‚‹ã‚ˆã†ã«ã™ã‚‹ãŸã‚ã«ã¯ã€core ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒ†ã‚£ãƒ–
LogLevel
を使ã†å¿…è¦ãŒã‚りã¾ã™ã€‚
LogStderr | NoLogStderr
LogStderr
ã‚ーワードã¯å¤–部フィルタプãƒã‚°ãƒ©ãƒ ã«ã‚ˆã‚Š
標準エラー (訳注: stderr) ã«æ›¸ã‹ã‚ŒãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’
Apache ã®ã‚¨ãƒ©ãƒ¼ãƒã‚°ã«ä¿å˜ã™ã‚‹ã‚ˆã†ã«ã—ã¾ã™ã€‚NoLogStderr
ã¯
逆ã«ä¿å˜ã—ãªã„よã†ã«ã—ã¾ã™ã€‚
ExtFilterOptions LogStderr DebugLevel=0
ã“ã®ä¾‹ã§ã¯ã€ãƒ•ã‚£ãƒ«ã‚¿ã®æ¨™æº–å‡ºåŠ›ã«æ›¸ã‹ã‚ŒãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã¯
Apache ã®ã‚¨ãƒ©ãƒ¼ãƒã‚°ã«ä¿å˜ã•れã¾ã™ã€‚mod_ext_filter
ã‹ã‚‰ã¯
デãƒãƒƒã‚°ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã¯ç”Ÿæˆã•れã¾ã›ã‚“。