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: 105989:1561569 (outdated) -->
7 Licensed to the Apache Software Foundation (ASF) under one or more
8 contributor license agreements. See the NOTICE file distributed with
9 this work for additional information regarding copyright ownership.
10 The ASF licenses this file to You under the Apache License, Version 2.0
11 (the "License"); you may not use this file except in compliance with
12 the License. You may obtain a copy of the License at
14 http://www.apache.org/licenses/LICENSE-2.0
16 Unless required by applicable law or agreed to in writing, software
17 distributed under the License is distributed on an "AS IS" BASIS,
18 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19 See the License for the specific language governing permissions and
20 limitations under the License.
23 <modulesynopsis metafile="mod_ext_filter.xml.meta">
25 <name>mod_ext_filter</name>
26 <description>ÀÀ´ä ³»¿ëÀ» ¿ÜºÎ ÇÁ·Î±×·¥À¸·Î ó¸®ÇÑ ÈÄ Å¬¶óÀ̾ðÆ®·Î
28 <status>Extension</status>
29 <sourcefile>mod_ext_filter.c</sourcefile>
30 <identifier>ext_filter_module</identifier>
33 <p><module>mod_ext_filter</module>¸¦ »ç¿ëÇÏ¸é °£´ÜÇÏ°í Àͼ÷ÇÑ
34 ¹æ¹ýÀ¸·Î <a href="../filter.html">ÇÊÅÍ</a>¸¦ ¸¸µé ¼ö ÀÖ´Ù.
35 Ç¥ÁØÀԷ¿¡¼ Àаí Ç¥ÁØÃâ·Â¿¡ ¾²´Â ÇÁ·Î±×·¥(Áï, À¯´Ð½º½Ä
36 ÇÊÅÍ ¸í·É¾î)À» ¾ÆÆÄÄ¡ ÇÊÅÍ·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ·± ÇÊÅÍ´Â
37 ¾ÆÆÄÄ¡ API·Î ¾²¿©Áö°í ¾ÆÆÄÄ¡ ¼¹ö ÇÁ·Î¼¼½º ¾È¿¡¼ ½ÇÇàµÇ´Â
38 ÇÊÅÍ¿¡ ºñÇØ ¸Å¿ì ´À¸®Áö¸¸, ´ÙÀ½°ú °°Àº ÀåÁ¡ÀÌ ÀÖ´Ù:</p>
41 <li>ÇÁ·Î±×·¡¹Ö ¸ðµ¨ÀÌ ¸Å¿ì °£´ÜÇÏ´Ù</li>
43 <li>ÇÁ·Î±×·¥ÀÌ Ç¥ÁØÀԷ¿¡¼ Àаí Ç¥ÁØÃâ·Â¿¡ ¾µ ¼ö¸¸ ÀÖ´Ù¸é
44 ¾î¶² ÇÁ·Î±×·¡¹Ö/½ºÅ©¸³Æ® ¾ð¾î¶óµµ »ç¿ëÇÒ ¼ö ÀÖ´Ù</li>
46 <li>ÀÌ¹Ì ÀÖ´Â ÇÁ·Î±×·¥À» ¼öÁ¤¾øÀÌ ¾ÆÆÄÄ¡ ÇÊÅÍ·Î »ç¿ëÇÒ
50 <p>½ÇÁ¦ »ç¿ëÇϱ⿡´Â ¼º´ÉÀÌ ¶³¾îÁöÁö¸¸,
51 <module>mod_ext_filter</module>¸¦ »ç¿ëÇÏ¿© ÇÊÅ͸¦ »¡¸® ¸¸µé¾îº¼
55 <seealso><a href="../filter.html">ÇÊÅÍ</a></seealso>
57 <section id="examples"><title>¿¹Á¦</title>
59 <section><title>´Ù¸¥ typeÀÇ ÀÀ´äÀ» HTML·Î ¸¸µç´Ù</title>
61 # mod_ext_filter Áö½Ã¾î¸¦ °¡Áö°í<br />
62 # ¿ÜºÎ ÇÁ·Î±×·¥ /usr/bin/enscript¸¦ »ç¿ëÇÏ¿©<br />
63 # ¹®¼ÆÄÀÏ°ú text/c ÆÄÀÏÀ» HTML·Î ¸¸µé°í °á°úÀÇ<br />
64 # typeÀ» text/html·Î º¯°æÇÏ´Â ÇÊÅ͸¦ Á¤ÀÇÇÑ´Ù<br />
65 ExtFilterDefine c-to-html mode=output \<br />
67 intype=text/c outtype=text/html \<br />
68 cmd="/usr/bin/enscript --color -W html -Ec -o - -"<br />
71 <Directory "/export/home/trawick/apacheinst/htdocs/c"><br />
73 # Ãâ·Â¿¡ »õ·Î¿î ÇÊÅ͸¦ ½ÇÇàÇÏ´Â core Áö½Ã¾î<br />
74 SetOutputFilter c-to-html<br />
76 # .c ÆÄÀÏÀÇ typeÀ» text/c·Î ¸¸µå´Â mod_mime<br />
78 AddType text/c .c<br />
80 # µð¹ö±× ¼öÁØÀ» ³ô¿©¼ ¿äû¸¶´Ù ÇöÀç ¼³Á¤À»<br />
81 # ¾Ë·ÁÁÖ´Â ·Î±×¹®À» ±â·ÏÇÏ´Â mod_ext_filter<br />
83 ExtFilterOptions DebugLevel=1<br />
89 <section><title>content ÀÎÄÚµù ÇÊÅÍ ±¸ÇöÇϱâ</title>
90 <p>Note: ¾Æ·¡ gzip ¿¹Á¦´Â ´ÜÁö ¼³¸íÀ» ¿¹·Î µç °ÍÀÌ´Ù.
91 ½ÇÁ¦ ¼ºñ½º¿¡ »ç¿ëÇÏ·Á¸é <module>mod_deflate</module>¸¦
95 # ¿ÜºÎ ÇÊÅ͸¦ Á¤ÀÇÇÏ´Â mod_ext_filter Áö½Ã¾î<br />
96 ExtFilterDefine gzip mode=output cmd=/bin/gzip<br />
98 <Location /gzipped><br />
100 # Ãâ·ÂÇÒ¶§ gzip ÇÊÅ͸¦ ½ÇÇàÇÏ´Â core Áö½Ã¾î<br />
101 SetOutputFilter gzip<br />
103 # "Content-Encoding: gzip" Çì´õ¸¦ Ãß°¡ÇÏ´Â<br />
104 # mod_header Áö½Ã¾î<br />
105 Header set Content-Encoding gzip<br />
111 <section><title>¼¹ö¸¦ ´À¸®°Ô Çϱâ</title>
113 # catÀ¸·Î ¸ðµç ³»¿ëÀ» Åë°úÇÏ´Â ÇÊÅ͸¦ Á¤ÀÇÇÏ´Â<br />
114 # mod_ext_filter Áö½Ã¾î; catÀº ¾Æ¹«°Íµµ ¼öÁ¤ÇÏÁö<br />
115 # ¾Ê´Â´Ù; ´ÜÁö 󸮰æ·Î¸¦ ±æ°Ô ÇÏ¿© ÀÚ¿øÀ» ´õ ¼Ò¸ðÇÑ´Ù<br />
116 ExtFilterDefine slowdown mode=output cmd=/bin/cat \<br />
118 preservescontentlength<br />
121 <Location /><br />
123 # Ãâ·ÂÇÒ¶§ slowdown ÇÊÅ͸¦ ¿©·¯¹ø ½ÇÇàÇÏ´Â core Áö½Ã¾î<br />
125 SetOutputFilter slowdown;slowdown;slowdown<br />
131 <section><title>sed¸¦ »ç¿ëÇÏ¿© ÀÀ´ä¿¡¼ ±ÛÀ» ´ëüÇϱâ</title>
133 # ÀÀ´ä¿¡¼ ±ÛÀ» ´ëüÇÏ´Â ÇÊÅ͸¦ Á¤ÀÇÇÏ´Â<br />
134 # mod_ext_filter Áö½Ã¾î<br />
136 ExtFilterDefine fixtext mode=output intype=text/html \<br />
138 cmd="/bin/sed s/verdana/arial/g"<br />
141 <Location /><br />
143 # Ãâ·ÂÇÒ¶§ fixtext ÇÊÅ͸¦ ½ÇÇàÇÏ´Â core Áö½Ã¾î<br />
144 SetOutputFilter fixtext<br />
150 <section><title>´Ù¸¥ ÇÊÅ͸¦ ÃßÀûÇϱâ</title>
152 # ¾ÐÃà ¹®Á¦°¡ Àִ ƯÁ¤ Ŭ¶óÀ̾ðÆ®(IP 192.168.1.31)¿¡<br />
153 # ´ëÇØ mod_deflate°¡ ÀÐ°í ¾²´Â ÀڷḦ ÃßÀûÇÑ´Ù.<br />
154 # ÀÌ ÇÊÅÍ´Â mod_deflate·Î º¸³»±â Àü ÀڷḦ ÃßÀûÇÑ´Ù.<br />
155 ExtFilterDefine tracebefore \<br />
157 cmd="/bin/tracefilter.pl /tmp/tracebefore" \<br />
158 EnableEnv=trace_this_client<br />
161 # ÀÌ ÇÊÅÍ´Â mod_deflate¿¡¼ ³ª¿À´Â ÀڷḦ ÃßÀûÇÑ´Ù.<br />
162 # ftype ÆĶó¹ÌÅ͸¦ »ç¿ëÇÏÁö¾Ê´Â °æ¿ì, ±âº» ÇÊÅÍÇü<br />
163 # AP_FTYPE_RESOURCE´Â ÇÊÅÍ ¼ø¼¸¦ mod_deflate *ÀÌÀü¿¡*<br />
164 # µÐ´Ù. AP_FTYPE_CONTENT_SET º¸´Ù Á¶±Ý ³ôÀº ¼ýÀÚ°ªÀ»<br />
165 # ÁöÁ¤Çϸé mod_deflate ÀÌÈÄ¿¡ ½ÇÇàÇÑ´Ù.<br />
166 ExtFilterDefine traceafter \<br />
168 cmd="/bin/tracefilter.pl /tmp/traceafter" \<br />
169 EnableEnv=trace_this_client ftype=21<br />
172 <Directory /usr/local/docs><br />
174 SetEnvIf Remote_Addr 192.168.1.31 trace_this_client<br />
175 SetOutputFilter tracebefore;deflate;traceafter<br />
180 <example><title>´ÙÀ½Àº ÀڷḦ ÃßÀûÇÏ´Â ÇÊÅÍÀÌ´Ù:</title>
181 #!/usr/local/bin/perl -w<br />
184 open(SAVE, ">$ARGV[0]")<br />
186 or die "can't open $ARGV[0]: $?";<br />
189 while (<STDIN>) {<br />
199 </section> <!-- /Examples -->
202 <name>ExtFilterDefine</name>
203 <description>¿ÜºÎ ÇÊÅ͸¦ Á¤ÀÇÇÑ´Ù</description>
204 <syntax>ExtFilterDefine <var>filtername</var> <var>parameters</var></syntax>
205 <contextlist><context>server config</context></contextlist>
208 <p><directive>ExtFilterDefine</directive> Áö½Ã¾î´Â ¿ÜºÎ
209 ÇÊÅÍÀÇ ¼ºÁú°ú ½ÇÇàÇÒ ÇÁ·Î±×·¥, ¾Æ±Ô¸ÕÆ®¸¦ Á¤ÀÇÇÑ´Ù.</p>
211 <p><var>filtername</var>Àº Á¤ÀÇÇÒ ÇÊÅÍ À̸§À» ÁöÁ¤ÇÑ´Ù.
212 ÀÌ À̸§À» SetOutputFilter Áö½Ã¾î¿¡¼ »ç¿ëÇÑ´Ù. µî·ÏÇÑ ¸ðµç
213 ÇÊÅ͵鰣¿¡ À̸§ÀÌ °ãÄ¡¸é ¾ÈµÈ´Ù. <em>ÇöÀç ÇÊÅ͵î·Ï API´Â
214 ¿À·ù¸¦ º¸°íÇÏÁö ¾Ê´Â´Ù. ±×·¡¼ »ç¿ëÀÚ´Â À̸§ÀÌ °ãÄ¡´Â ¹®Á¦¸¦
215 ¾ËÁö ¸øÇÑ´Ù.</em></p>
217 <p>½ÇÇàÇÒ ¿ÜºÎ ¸í·É¾î¿Í ´Ù¸¥ ¼ºÁúÀ» Á¤ÀÇÇÏ´Â ³ª¸ÓÁö ¾Æ±Ô¸ÕÆ®´Â
218 ¾î¶² ¼ø¼·Î ³ª¿Íµµ °¡´ÉÇÏ´Ù. ´Ü, <code>cmd=</code> ÆĶó¹ÌÅÍ´Â
219 ¹Ýµå½Ã ÇÊ¿äÇÏ´Ù. »ç¿ëÇÒ ¼ö ÀÖ´Â ÆĶó¹ÌÅÍ´Â ´ÙÀ½°ú °°´Ù:</p>
222 <dt><code>cmd=<var>cmdline</var></code></dt>
224 <dd><code>cmd=</code> Å°¿öµå´Â ½ÇÇàÇÒ ¿ÜºÎ ¸í·É¾î¸¦ ÁöÁ¤ÇÑ´Ù.
225 ÇÁ·Î±×·¥¸í µÚ¿¡ ¾Æ±Ô¸ÕÆ®°¡ ÀÖ´Ù¸é ¸í·ÉÇàÀ» ½Öµû¿ÈÇ¥·Î
226 ¹¾î¾ß ÇÑ´Ù (<em>¿¹¸¦ µé¾î</em>,
227 <code>cmd="<var>/bin/mypgm</var> <var>arg1</var>
228 <var>arg2</var>"</code>). ½©À» °ÅÄ¡Áö¾Ê°í Á÷Á¢ ÇÁ·Î±×·¥À»
229 ½ÇÇàÇϱ⶧¹®¿¡ ÀϹÝÀûÀÎ ½© µû¿ÈÇ¥´Â ÇÊ¿ä¾ø´Ù. ÇÁ·Î±×·¥
230 ¾Æ±Ô¸ÕÆ®µéÀº °ø¹éÀ¸·Î ±¸ºÐÇÑ´Ù. ÇÁ·Î±×·¥ ¾Æ±Ô¸ÕÆ®¿¡ °ø¹éÀÌ
231 ÀÖ´Ù¸é °ø¹é ¾Õ¿¡ ¹é½½·¡½¬·Î »ç¿ëÇØ¾ß ÇÑ´Ù. ¹é½½·¡½¬°¡
232 ¾Æ±Ô¸ÕÆ®ÀÇ ÀϺζó¸é ¹é½½·¡½¬¸¦ µÎ¹ø »ç¿ëÇØ¾ß ÇÑ´Ù. ÇÁ·Î±×·¥À»
233 ½ÇÇàÇÒ¶§ Ç¥ÁØ CGI ȯ°æº¯¼ö¿Í Ãß°¡·Î DOCUMENT_URI,
234 DOCUMENT_PATH_INFO, QUERY_STRING_UNESCAPED º¯¼ö¸¦ ¼³Á¤ÇÑ´Ù.</dd>
236 <dt><code>mode=<var>mode</var></code></dt>
238 <dd>ÀÀ´äÀ» ó¸®ÇÏ´Â ÇÊÅÍ´Â (±âº»°ªÀÎ) <code>mode=output</code>À»
239 »ç¿ëÇÑ´Ù. ¿äûÀ» ó¸®ÇÏ´Â ÇÊÅÍ´Â <code>mode=input</code>À»
240 »ç¿ëÇÑ´Ù. <code>mode=input</code>Àº ¾ÆÆÄÄ¡ 2.1¿¡ Ãß°¡µÇ¾ú´Ù.</dd>
242 <dt><code>intype=<var>imt</var></code></dt>
244 <dd>ÀÌ ÆĶó¹ÌÅÍ´Â ÇÊÅͷΠó¸®ÇÒ ¹®¼ÀÇ ÀÎÅÍ³Ý media
245 type(<em>Áï</em>, MIME type)À» ÁöÁ¤ÇÑ´Ù. ±âº»ÀûÀ¸·Î ¸ðµç
246 ¹®¼¸¦ ÇÊÅͷΠó¸®ÇÑ´Ù. <code>intype=</code>À» ÁöÁ¤Çϸé
247 ´Ù¸¥ typeÀÇ ¹®¼´Â ÇÊÅͷΠó¸®ÇÏÁö ¾Ê´Â´Ù.</dd>
249 <dt><code>outtype=<var>imt</var></code></dt>
251 <dd>ÀÌ ÆĶó¹ÌÅÍ´Â ÇÊÅͷΠó¸®ÇÑ ¹®¼ÀÇ ÀÎÅÍ³Ý media
252 type(<em>Áï</em>, MIME type)À» ÁöÁ¤ÇÑ´Ù. ÇÊÅÍó¸® ÀÛ¾÷Áß¿¡
253 ÀÎÅÍ³Ý media typeÀ» º¯°æÇÒ¶§ À¯¿ëÇÏ´Ù. ±âº»ÀûÀ¸·Î, ÀÎÅͳÝ
254 media typeÀº º¯ÇÏÁö ¾Ê´Â´Ù.</dd>
256 <dt><code>PreservesContentLength</code></dt>
258 <dd><code>PreservesContentLength</code> Å°¿öµå´Â ÇÊÅÍ°¡
259 content length¸¦ À¯ÁöÇϵµ·Ï ÇÑ´Ù. ´ëºÎºÐÀÇ ÇÊÅÍ°¡ content
260 length¸¦ º¯°æÇϹǷΠÀÌ Å°¿öµå´Â ±âº»°ªÀÌ ¾Æ´Ï´Ù. ÇÊÅÍ°¡
261 ±æÀ̸¦ À¯ÁöÇÒ¶§¸¸ ÀÌ Å°¿öµå¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.</dd>
263 <dt><code>ftype=<var>filtertype</var></code></dt>
265 <dd>ÀÌ ÆĶó¹ÌÅÍ´Â ÇÊÅÍ Á¾·ù¿¡ ´ëÇÑ ¼ýÀÚ°ªÀ» ÁöÁ¤ÇÑ´Ù.
266 ´ëºÎºÐÀÇ °æ¿ì ±âº»°ªÀÎ AP_FTYPE_RESOURCE°¡ Àû´çÇÏ´Ù.
267 ÇÊÅ͸¦ ½ÇÇàÇÏ´Â ¼ø¼°¡ ÀÚ¿øÇÊÅÍ¿Í ´Þ¶ó¾ßÇÏ´Â °æ¿ì ÀÌ
268 ÆĶó¹ÌÅÍ°¡ ÇÊ¿äÇÏ´Ù. Àû´çÇÑ °ªÀ» ¾Ë·Á¸é util_filter.h¿¡
269 ÀÖ´Â AP_FTYPE_* Á¤ÀǸ¦ Âü°íÇ϶ó.</dd>
271 <dt><code>disableenv=<var>env</var></code></dt>
273 <dd>ÀÌ ÆĶó¹ÌÅÍ·Î ¼³Á¤ÇÑ È¯°æº¯¼ö°¡ Á¤ÀǵǾú´Ù¸é ÇÊÅ͸¦
274 »ç¿ëÇÏÁö ¾Ê´Â´Ù.</dd>
276 <dt><code>enableenv=<var>env</var></code></dt>
278 <dd>ÀÌ ÆĶó¹ÌÅÍ·Î ¼³Á¤ÇÑ È¯°æº¯¼ö°¡ Á¤ÀÇµÈ °æ¿ì ÇÊÅ͸¦
285 <name>ExtFilterOptions</name>
286 <description><module>mod_ext_filter</module> ¿É¼ÇÀ» ¼³Á¤ÇÑ´Ù</description>
287 <syntax>ExtFilterOptions <var>option</var> [<var>option</var>] ...</syntax>
288 <default>ExtFilterOptions DebugLevel=0 NoLogStderr</default>
289 <contextlist><context>directory</context></contextlist>
292 <p><directive>ExtFilterOptions</directive> Áö½Ã¾î´Â
293 <module>mod_ext_filter</module>ÀÇ Æ¯º°ÇÑ Ã³¸®¿É¼ÇÀ» ÁöÁ¤ÇÑ´Ù.
294 <var>Option</var>Àº ´ÙÀ½Áß Çϳª´Ù.</p>
297 <dt><code>DebugLevel=<var>n</var></code></dt>
300 <code>DebugLevel</code> Å°¿öµå´Â
301 <module>mod_ext_filter</module>°¡ ±â·ÏÇÏ´Â µð¹ö±× ¹®±¸
302 ¼öÁØÀ» Á¤ÇÑ´Ù. ±âº»°ªÀº µð¹ö±×¹®À» ±â·ÏÇÏÁö ¾Ê´Â´Ù.
303 ÀÌ´Â <code>DebugLevel=0</code>°ú °°´Ù. ³ôÀº ¼ýÀÚ¸¦
304 »ç¿ëÇÒ¼ö·Ï, ´õ ¸¹Àº µð¹ö±×¹®ÀÌ ±â·ÏµÇ°í ¼¹ö ¼º´ÉÀÌ
305 ¶³¾îÁø´Ù. ¼ýÀÚ°ªÀÇ ½ÇÁ¦ Àǹ̴ <code>mod_ext_filter.c</code>
306 ¾ÕºÎºÐ¿¡ ÀÖ´Â DBGLVL_ »ó¼ö Á¤ÀÇ¿¡ ¼³¸íµÇÀÖ´Ù.
308 <p>ÁÖÀÇ: ÇÊÅÍ ·Î±×¸¦ ±â·ÏÇÏ·Á¸é core Áö½Ã¾î <directive
309 module="core">LogLevel</directive>À» »ç¿ëÇÏ¿© µð¹ö±×¹®À»
310 ¾ÆÆÄÄ¡ ¿À·ù·Î±×¿¡ ±â·ÏÇØ¾ß ÇÑ´Ù.</p>
313 <dt><code>LogStderr | NoLogStderr</code></dt>
315 <dd><code>LogStderr</code> Å°¿öµå´Â ¿ÜºÎ ÇÊÅÍ ÇÁ·Î±×·¥ÀÌ
316 Ç¥ÁØ¿À·ù·Î Ãâ·ÂÇÏ´Â ¹®±¸¸¦ ¾ÆÆÄÄ¡ ¿À·ù·Î±×¿¡ ±â·ÏÇÑ´Ù.
317 <code>NoLogStderr</code>´Â ÀÌ ±â´ÉÀ» ÇÏÁö ¾Ê´Â´Ù.</dd>
320 <example><title>¿¹Á¦</title>
321 ExtFilterOptions LogStderr DebugLevel=0
324 <p>À§ÀÇ ¼³Á¤À» »ç¿ëÇϸé ÇÊÅÍ°¡ Ç¥ÁØ¿À·ù·Î Ãâ·ÂÇÏ´Â ¹®±¸¸¦
325 ¾ÆÆÄÄ¡ ¿À·ù·Î±×¿¡ ±â·ÏÇÏ°í, <module>mod_ext_filter</module>´Â
326 ÀÚü µð¹ö±×¹®À» ±â·ÏÇÏÁö ¾Ê´Â´Ù. </p>