1 <?xml version="1.0" encoding="EUC-KR" ?>
2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
4 <!-- English Revision: 1.15 -->
7 Copyright 2004 The Apache Software Foundation
9 Licensed under the Apache License, Version 2.0 (the "License");
10 you may not use this file except in compliance with the License.
11 You may obtain a copy of the License at
13 http://www.apache.org/licenses/LICENSE-2.0
15 Unless required by applicable law or agreed to in writing, software
16 distributed under the License is distributed on an "AS IS" BASIS,
17 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 See the License for the specific language governing permissions and
19 limitations under the License.
22 <modulesynopsis metafile="mod_ext_filter.xml.meta">
24 <name>mod_ext_filter</name>
25 <description>ÀÀ´ä ³»¿ëÀ» ¿ÜºÎ ÇÁ·Î±×·¥À¸·Î ó¸®ÇÑ ÈÄ Å¬¶óÀ̾ðÆ®·Î
27 <status>Extension</status>
28 <sourcefile>mod_ext_filter.c</sourcefile>
29 <identifier>ext_filter_module</identifier>
32 <p><module>mod_ext_filter</module>¸¦ »ç¿ëÇÏ¸é °£´ÜÇÏ°í Àͼ÷ÇÑ
33 ¹æ¹ýÀ¸·Î <a href="../filter.html">ÇÊÅÍ</a>¸¦ ¸¸µé ¼ö ÀÖ´Ù.
34 Ç¥ÁØÀԷ¿¡¼ Àаí Ç¥ÁØÃâ·Â¿¡ ¾²´Â ÇÁ·Î±×·¥(Áï, À¯´Ð½º½Ä
35 ÇÊÅÍ ¸í·É¾î)À» ¾ÆÆÄÄ¡ ÇÊÅÍ·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ·± ÇÊÅÍ´Â
36 ¾ÆÆÄÄ¡ API·Î ¾²¿©Áö°í ¾ÆÆÄÄ¡ ¼¹ö ÇÁ·Î¼¼½º ¾È¿¡¼ ½ÇÇàµÇ´Â
37 ÇÊÅÍ¿¡ ºñÇØ ¸Å¿ì ´À¸®Áö¸¸, ´ÙÀ½°ú °°Àº ÀåÁ¡ÀÌ ÀÖ´Ù:</p>
40 <li>ÇÁ·Î±×·¡¹Ö ¸ðµ¨ÀÌ ¸Å¿ì °£´ÜÇÏ´Ù</li>
42 <li>ÇÁ·Î±×·¥ÀÌ Ç¥ÁØÀԷ¿¡¼ Àаí Ç¥ÁØÃâ·Â¿¡ ¾µ ¼ö¸¸ ÀÖ´Ù¸é
43 ¾î¶² ÇÁ·Î±×·¡¹Ö/½ºÅ©¸³Æ® ¾ð¾î¶óµµ »ç¿ëÇÒ ¼ö ÀÖ´Ù</li>
45 <li>ÀÌ¹Ì ÀÖ´Â ÇÁ·Î±×·¥À» ¼öÁ¤¾øÀÌ ¾ÆÆÄÄ¡ ÇÊÅÍ·Î »ç¿ëÇÒ
49 <p>½ÇÁ¦ »ç¿ëÇϱ⿡´Â ¼º´ÉÀÌ ¶³¾îÁöÁö¸¸,
50 <module>mod_ext_filter</module>¸¦ »ç¿ëÇÏ¿© ÇÊÅ͸¦ »¡¸® ¸¸µé¾îº¼
54 <seealso><a href="../filter.html">ÇÊÅÍ</a></seealso>
56 <section id="examples"><title>¿¹Á¦</title>
58 <section><title>´Ù¸¥ typeÀÇ ÀÀ´äÀ» HTML·Î ¸¸µç´Ù</title>
60 # mod_ext_filter Áö½Ã¾î¸¦ °¡Áö°í<br />
61 # ¿ÜºÎ ÇÁ·Î±×·¥ /usr/bin/enscript¸¦ »ç¿ëÇÏ¿©<br />
62 # ¹®¼ÆÄÀÏ°ú text/c ÆÄÀÏÀ» HTML·Î ¸¸µé°í °á°úÀÇ<br />
63 # typeÀ» text/html·Î º¯°æÇÏ´Â ÇÊÅ͸¦ Á¤ÀÇÇÑ´Ù<br />
64 ExtFilterDefine c-to-html mode=output \<br />
66 intype=text/c outtype=text/html \<br />
67 cmd="/usr/bin/enscript --color -W html -Ec -o - -"<br />
70 <Directory "/export/home/trawick/apacheinst/htdocs/c"><br />
72 # Ãâ·Â¿¡ »õ·Î¿î ÇÊÅ͸¦ ½ÇÇàÇÏ´Â core Áö½Ã¾î<br />
73 SetOutputFilter c-to-html<br />
75 # .c ÆÄÀÏÀÇ typeÀ» text/c·Î ¸¸µå´Â mod_mime<br />
77 AddType text/c .c<br />
79 # µð¹ö±× ¼öÁØÀ» ³ô¿©¼ ¿äû¸¶´Ù ÇöÀç ¼³Á¤À»<br />
80 # ¾Ë·ÁÁÖ´Â ·Î±×¹®À» ±â·ÏÇÏ´Â mod_ext_filter<br />
82 ExtFilterOptions DebugLevel=1<br />
88 <section><title>content ÀÎÄÚµù ÇÊÅÍ ±¸ÇöÇϱâ</title>
89 <p>Note: ¾Æ·¡ gzip ¿¹Á¦´Â ´ÜÁö ¼³¸íÀ» ¿¹·Î µç °ÍÀÌ´Ù.
90 ½ÇÁ¦ ¼ºñ½º¿¡ »ç¿ëÇÏ·Á¸é <module>mod_deflate</module>¸¦
94 # ¿ÜºÎ ÇÊÅ͸¦ Á¤ÀÇÇÏ´Â mod_ext_filter Áö½Ã¾î<br />
95 ExtFilterDefine gzip mode=output cmd=/bin/gzip<br />
97 <Location /gzipped><br />
99 # Ãâ·ÂÇÒ¶§ gzip ÇÊÅ͸¦ ½ÇÇàÇÏ´Â core Áö½Ã¾î<br />
100 SetOutputFilter gzip<br />
102 # "Content-Encoding: gzip" Çì´õ¸¦ Ãß°¡ÇÏ´Â<br />
103 # mod_header Áö½Ã¾î<br />
104 Header set Content-Encoding gzip<br />
110 <section><title>¼¹ö¸¦ ´À¸®°Ô Çϱâ</title>
112 # catÀ¸·Î ¸ðµç ³»¿ëÀ» Åë°úÇÏ´Â ÇÊÅ͸¦ Á¤ÀÇÇÏ´Â<br />
113 # mod_ext_filter Áö½Ã¾î; catÀº ¾Æ¹«°Íµµ ¼öÁ¤ÇÏÁö<br />
114 # ¾Ê´Â´Ù; ´ÜÁö 󸮰æ·Î¸¦ ±æ°Ô ÇÏ¿© ÀÚ¿øÀ» ´õ ¼Ò¸ðÇÑ´Ù<br />
115 ExtFilterDefine slowdown mode=output cmd=/bin/cat \<br />
117 preservescontentlength<br />
120 <Location /><br />
122 # Ãâ·ÂÇÒ¶§ slowdown ÇÊÅ͸¦ ¿©·¯¹ø ½ÇÇàÇÏ´Â core Áö½Ã¾î<br />
124 SetOutputFilter slowdown;slowdown;slowdown<br />
130 <section><title>sed¸¦ »ç¿ëÇÏ¿© ÀÀ´ä¿¡¼ ±ÛÀ» ´ëüÇϱâ</title>
132 # ÀÀ´ä¿¡¼ ±ÛÀ» ´ëüÇÏ´Â ÇÊÅ͸¦ Á¤ÀÇÇÏ´Â<br />
133 # mod_ext_filter Áö½Ã¾î<br />
135 ExtFilterDefine fixtext mode=output intype=text/html \<br />
137 cmd="/bin/sed s/verdana/arial/g"<br />
140 <Location /><br />
142 # Ãâ·ÂÇÒ¶§ fixtext ÇÊÅ͸¦ ½ÇÇàÇÏ´Â core Áö½Ã¾î<br />
143 SetOutputFilter fixtext<br />
149 <section><title>´Ù¸¥ ÇÊÅ͸¦ ÃßÀûÇϱâ</title>
151 # ¾ÐÃà ¹®Á¦°¡ Àִ ƯÁ¤ Ŭ¶óÀ̾ðÆ®(IP 192.168.1.31)¿¡<br />
152 # ´ëÇØ mod_deflate°¡ ÀÐ°í ¾²´Â ÀڷḦ ÃßÀûÇÑ´Ù.<br />
153 # ÀÌ ÇÊÅÍ´Â mod_deflate·Î º¸³»±â Àü ÀڷḦ ÃßÀûÇÑ´Ù.<br />
154 ExtFilterDefine tracebefore \<br />
156 cmd="/bin/tracefilter.pl /tmp/tracebefore" \<br />
157 EnableEnv=trace_this_client<br />
160 # ÀÌ ÇÊÅÍ´Â mod_deflate¿¡¼ ³ª¿À´Â ÀڷḦ ÃßÀûÇÑ´Ù.<br />
161 # ftype ÆĶó¹ÌÅ͸¦ »ç¿ëÇÏÁö¾Ê´Â °æ¿ì, ±âº» ÇÊÅÍÇü<br />
162 # AP_FTYPE_RESOURCE´Â ÇÊÅÍ ¼ø¼¸¦ mod_deflate *ÀÌÀü¿¡*<br />
163 # µÐ´Ù. AP_FTYPE_CONTENT_SET º¸´Ù Á¶±Ý ³ôÀº ¼ýÀÚ°ªÀ»<br />
164 # ÁöÁ¤Çϸé mod_deflate ÀÌÈÄ¿¡ ½ÇÇàÇÑ´Ù.<br />
165 ExtFilterDefine traceafter \<br />
167 cmd="/bin/tracefilter.pl /tmp/traceafter" \<br />
168 EnableEnv=trace_this_client ftype=21<br />
171 <Directory /usr/local/docs><br />
173 SetEnvIf Remote_Addr 192.168.1.31 trace_this_client<br />
174 SetOutputFilter tracebefore;deflate;traceafter<br />
179 <example><title>´ÙÀ½Àº ÀڷḦ ÃßÀûÇÏ´Â ÇÊÅÍÀÌ´Ù:</title>
180 #!/usr/local/bin/perl -w<br />
183 open(SAVE, ">$ARGV[0]")<br />
185 or die "can't open $ARGV[0]: $?";<br />
188 while (<STDIN>) {<br />
198 </section> <!-- /Examples -->
201 <name>ExtFilterDefine</name>
202 <description>¿ÜºÎ ÇÊÅ͸¦ Á¤ÀÇÇÑ´Ù</description>
203 <syntax>ExtFilterDefine <var>filtername</var> <var>parameters</var></syntax>
204 <contextlist><context>server config</context></contextlist>
207 <p><directive>ExtFilterDefine</directive> Áö½Ã¾î´Â ¿ÜºÎ
208 ÇÊÅÍÀÇ ¼ºÁú°ú ½ÇÇàÇÒ ÇÁ·Î±×·¥, ¾Æ±Ô¸ÕÆ®¸¦ Á¤ÀÇÇÑ´Ù.</p>
210 <p><var>filtername</var>Àº Á¤ÀÇÇÒ ÇÊÅÍ À̸§À» ÁöÁ¤ÇÑ´Ù.
211 ÀÌ À̸§À» SetOutputFilter Áö½Ã¾î¿¡¼ »ç¿ëÇÑ´Ù. µî·ÏÇÑ ¸ðµç
212 ÇÊÅ͵鰣¿¡ À̸§ÀÌ °ãÄ¡¸é ¾ÈµÈ´Ù. <em>ÇöÀç ÇÊÅ͵î·Ï API´Â
213 ¿À·ù¸¦ º¸°íÇÏÁö ¾Ê´Â´Ù. ±×·¡¼ »ç¿ëÀÚ´Â À̸§ÀÌ °ãÄ¡´Â ¹®Á¦¸¦
214 ¾ËÁö ¸øÇÑ´Ù.</em></p>
216 <p>½ÇÇàÇÒ ¿ÜºÎ ¸í·É¾î¿Í ´Ù¸¥ ¼ºÁúÀ» Á¤ÀÇÇÏ´Â ³ª¸ÓÁö ¾Æ±Ô¸ÕÆ®´Â
217 ¾î¶² ¼ø¼·Î ³ª¿Íµµ °¡´ÉÇÏ´Ù. ´Ü, <code>cmd=</code> ÆĶó¹ÌÅÍ´Â
218 ¹Ýµå½Ã ÇÊ¿äÇÏ´Ù. »ç¿ëÇÒ ¼ö ÀÖ´Â ÆĶó¹ÌÅÍ´Â ´ÙÀ½°ú °°´Ù:</p>
221 <dt><code>cmd=<var>cmdline</var></code></dt>
223 <dd><code>cmd=</code> Å°¿öµå´Â ½ÇÇàÇÒ ¿ÜºÎ ¸í·É¾î¸¦ ÁöÁ¤ÇÑ´Ù.
224 ÇÁ·Î±×·¥¸í µÚ¿¡ ¾Æ±Ô¸ÕÆ®°¡ ÀÖ´Ù¸é ¸í·ÉÇàÀ» ½Öµû¿ÈÇ¥·Î
225 ¹¾î¾ß ÇÑ´Ù (<em>¿¹¸¦ µé¾î</em>,
226 <code>cmd="<var>/bin/mypgm</var> <var>arg1</var>
227 <var>arg2</var>"</code>). ½©À» °ÅÄ¡Áö¾Ê°í Á÷Á¢ ÇÁ·Î±×·¥À»
228 ½ÇÇàÇϱ⶧¹®¿¡ ÀϹÝÀûÀÎ ½© µû¿ÈÇ¥´Â ÇÊ¿ä¾ø´Ù. ÇÁ·Î±×·¥
229 ¾Æ±Ô¸ÕÆ®µéÀº °ø¹éÀ¸·Î ±¸ºÐÇÑ´Ù. ÇÁ·Î±×·¥ ¾Æ±Ô¸ÕÆ®¿¡ °ø¹éÀÌ
230 ÀÖ´Ù¸é °ø¹é ¾Õ¿¡ ¹é½½·¡½¬·Î »ç¿ëÇØ¾ß ÇÑ´Ù. ¹é½½·¡½¬°¡
231 ¾Æ±Ô¸ÕÆ®ÀÇ ÀϺζó¸é ¹é½½·¡½¬¸¦ µÎ¹ø »ç¿ëÇØ¾ß ÇÑ´Ù. ÇÁ·Î±×·¥À»
232 ½ÇÇàÇÒ¶§ Ç¥ÁØ CGI ȯ°æº¯¼ö¿Í Ãß°¡·Î DOCUMENT_URI,
233 DOCUMENT_PATH_INFO, QUERY_STRING_UNESCAPED º¯¼ö¸¦ ¼³Á¤ÇÑ´Ù.</dd>
235 <dt><code>mode=<var>mode</var></code></dt>
237 <dd>ÀÀ´äÀ» ó¸®ÇÏ´Â ÇÊÅÍ´Â (±âº»°ªÀÎ) <code>mode=output</code>À»
238 »ç¿ëÇÑ´Ù. ¿äûÀ» ó¸®ÇÏ´Â ÇÊÅÍ´Â <code>mode=input</code>À»
239 »ç¿ëÇÑ´Ù. <code>mode=input</code>Àº ¾ÆÆÄÄ¡ 2.1¿¡ Ãß°¡µÇ¾ú´Ù.</dd>
241 <dt><code>intype=<var>imt</var></code></dt>
243 <dd>ÀÌ ÆĶó¹ÌÅÍ´Â ÇÊÅͷΠó¸®ÇÒ ¹®¼ÀÇ ÀÎÅÍ³Ý media
244 type(<em>Áï</em>, MIME type)À» ÁöÁ¤ÇÑ´Ù. ±âº»ÀûÀ¸·Î ¸ðµç
245 ¹®¼¸¦ ÇÊÅͷΠó¸®ÇÑ´Ù. <code>intype=</code>À» ÁöÁ¤Çϸé
246 ´Ù¸¥ typeÀÇ ¹®¼´Â ÇÊÅͷΠó¸®ÇÏÁö ¾Ê´Â´Ù.</dd>
248 <dt><code>outtype=<var>imt</var></code></dt>
250 <dd>ÀÌ ÆĶó¹ÌÅÍ´Â ÇÊÅͷΠó¸®ÇÑ ¹®¼ÀÇ ÀÎÅÍ³Ý media
251 type(<em>Áï</em>, MIME type)À» ÁöÁ¤ÇÑ´Ù. ÇÊÅÍó¸® ÀÛ¾÷Áß¿¡
252 ÀÎÅÍ³Ý media typeÀ» º¯°æÇÒ¶§ À¯¿ëÇÏ´Ù. ±âº»ÀûÀ¸·Î, ÀÎÅͳÝ
253 media typeÀº º¯ÇÏÁö ¾Ê´Â´Ù.</dd>
255 <dt><code>PreservesContentLength</code></dt>
257 <dd><code>PreservesContentLength</code> Å°¿öµå´Â ÇÊÅÍ°¡
258 content length¸¦ À¯ÁöÇϵµ·Ï ÇÑ´Ù. ´ëºÎºÐÀÇ ÇÊÅÍ°¡ content
259 length¸¦ º¯°æÇϹǷΠÀÌ Å°¿öµå´Â ±âº»°ªÀÌ ¾Æ´Ï´Ù. ÇÊÅÍ°¡
260 ±æÀ̸¦ À¯ÁöÇÒ¶§¸¸ ÀÌ Å°¿öµå¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.</dd>
262 <dt><code>ftype=<var>filtertype</var></code></dt>
264 <dd>ÀÌ ÆĶó¹ÌÅÍ´Â ÇÊÅÍ Á¾·ù¿¡ ´ëÇÑ ¼ýÀÚ°ªÀ» ÁöÁ¤ÇÑ´Ù.
265 ´ëºÎºÐÀÇ °æ¿ì ±âº»°ªÀÎ AP_FTYPE_RESOURCE°¡ Àû´çÇÏ´Ù.
266 ÇÊÅ͸¦ ½ÇÇàÇÏ´Â ¼ø¼°¡ ÀÚ¿øÇÊÅÍ¿Í ´Þ¶ó¾ßÇÏ´Â °æ¿ì ÀÌ
267 ÆĶó¹ÌÅÍ°¡ ÇÊ¿äÇÏ´Ù. Àû´çÇÑ °ªÀ» ¾Ë·Á¸é util_filter.h¿¡
268 ÀÖ´Â AP_FTYPE_* Á¤ÀǸ¦ Âü°íÇ϶ó.</dd>
270 <dt><code>disableenv=<var>env</var></code></dt>
272 <dd>ÀÌ ÆĶó¹ÌÅÍ·Î ¼³Á¤ÇÑ È¯°æº¯¼ö°¡ Á¤ÀǵǾú´Ù¸é ÇÊÅ͸¦
273 »ç¿ëÇÏÁö ¾Ê´Â´Ù.</dd>
275 <dt><code>enableenv=<var>env</var></code></dt>
277 <dd>ÀÌ ÆĶó¹ÌÅÍ·Î ¼³Á¤ÇÑ È¯°æº¯¼ö°¡ Á¤ÀÇµÈ °æ¿ì ÇÊÅ͸¦
284 <name>ExtFilterOptions</name>
285 <description><module>mod_ext_filter</module> ¿É¼ÇÀ» ¼³Á¤ÇÑ´Ù</description>
286 <syntax>ExtFilterOptions <var>option</var> [<var>option</var>] ...</syntax>
287 <default>ExtFilterOptions DebugLevel=0 NoLogStderr</default>
288 <contextlist><context>directory</context></contextlist>
291 <p><directive>ExtFilterOptions</directive> Áö½Ã¾î´Â
292 <module>mod_ext_filter</module>ÀÇ Æ¯º°ÇÑ Ã³¸®¿É¼ÇÀ» ÁöÁ¤ÇÑ´Ù.
293 <var>Option</var>Àº ´ÙÀ½Áß Çϳª´Ù.</p>
296 <dt><code>DebugLevel=<var>n</var></code></dt>
299 <code>DebugLevel</code> Å°¿öµå´Â
300 <module>mod_ext_filter</module>°¡ ±â·ÏÇÏ´Â µð¹ö±× ¹®±¸
301 ¼öÁØÀ» Á¤ÇÑ´Ù. ±âº»°ªÀº µð¹ö±×¹®À» ±â·ÏÇÏÁö ¾Ê´Â´Ù.
302 ÀÌ´Â <code>DebugLevel=0</code>°ú °°´Ù. ³ôÀº ¼ýÀÚ¸¦
303 »ç¿ëÇÒ¼ö·Ï, ´õ ¸¹Àº µð¹ö±×¹®ÀÌ ±â·ÏµÇ°í ¼¹ö ¼º´ÉÀÌ
304 ¶³¾îÁø´Ù. ¼ýÀÚ°ªÀÇ ½ÇÁ¦ Àǹ̴ <code>mod_ext_filter.c</code>
305 ¾ÕºÎºÐ¿¡ ÀÖ´Â DBGLVL_ »ó¼ö Á¤ÀÇ¿¡ ¼³¸íµÇÀÖ´Ù.
307 <p>ÁÖÀÇ: ÇÊÅÍ ·Î±×¸¦ ±â·ÏÇÏ·Á¸é core Áö½Ã¾î <directive
308 module="core">LogLevel</directive>À» »ç¿ëÇÏ¿© µð¹ö±×¹®À»
309 ¾ÆÆÄÄ¡ ¿À·ù·Î±×¿¡ ±â·ÏÇØ¾ß ÇÑ´Ù.</p>
312 <dt><code>LogStderr | NoLogStderr</code></dt>
314 <dd><code>LogStderr</code> Å°¿öµå´Â ¿ÜºÎ ÇÊÅÍ ÇÁ·Î±×·¥ÀÌ
315 Ç¥ÁØ¿À·ù·Î Ãâ·ÂÇÏ´Â ¹®±¸¸¦ ¾ÆÆÄÄ¡ ¿À·ù·Î±×¿¡ ±â·ÏÇÑ´Ù.
316 <code>NoLogStderr</code>´Â ÀÌ ±â´ÉÀ» ÇÏÁö ¾Ê´Â´Ù.</dd>
319 <example><title>¿¹Á¦</title>
320 ExtFilterOptions LogStderr DebugLevel=0
323 <p>À§ÀÇ ¼³Á¤À» »ç¿ëÇϸé ÇÊÅÍ°¡ Ç¥ÁØ¿À·ù·Î Ãâ·ÂÇÏ´Â ¹®±¸¸¦
324 ¾ÆÆÄÄ¡ ¿À·ù·Î±×¿¡ ±â·ÏÇÏ°í, <module>mod_ext_filter</module>´Â
325 ÀÚü µð¹ö±×¹®À» ±â·ÏÇÏÁö ¾Ê´Â´Ù. </p>