본문으로 이동

미디어위키 1.45 안정화가 거의 끝났습니다. 다만 Flow 확장 기능 관련 이슈가 있어서 대체하는 작업을 수행할 계획입니다.

  1. 큰숲백과:청사진에서 위키 발전의 대략적인 방향성을 제시했습니다. 의견이 있으신 분은 큰숲백과토론:청사진에서 의견을 남겨주시면 좋겠습니다.
  2. 기능상의 오류로 지원하지 않고 있는 기능에 대해서는 큰숲백과토론:이슈 트래커에 요약했습니다. 참고하시기 바랍니다.
  3. 데이터베이스 덤프 받고싶으신 분은 큰숲백과 가입 후에 사용자토론:Bigforest에 의견 남겨주시면 ftp 주소, 계정, 비밀번호를 특수:EmailUser를 통해서 공개할 예정입니다.

작은숲:위키노트/아파치 mod deflate 모듈: 두 판 사이의 차이

큰숲백과, 나무를 보지 말고 큰 숲을 보라.
잔글 문자열 찾아 바꾸기 - "분류:위키노트에서 가져온 문서" 문자열을 "{{퍼온문서|위키노트|{{#invoke:string|replace|위키노트:|}}}}분류:위키노트에서 가져온 문서" 문자열로
잔글 Utolee90님이 위키노트:아파치 mod deflate 모듈 문서를 넘겨주기를 만들지 않고 작은숲:위키노트/아파치 mod deflate 모듈 문서로 이동했습니다: 위키노트 문서 작은숲으로 이동
 
(같은 사용자의 중간 판 8개는 보이지 않습니다)
1번째 줄: 1번째 줄:
{{DISPLAYTITLE:아파치 mod_deflate 모듈}}
{{DISPLAYTITLE:아파치 mod_deflate 모듈}}
[[위키노트:웹 서버|웹 서버]]에서 트래픽을 줄이기 위한 가장 쉬운 방법은 압축 전송을 하는 것이다. 요즘은 많은 웹 애플리케이션들이 웹 서버의 압축 전송 기능을 이용하거나 자체적으로 압축해서 전송하는 경우가 많다.
[[작은숲:위키노트/웹 서버|웹 서버]]에서 트래픽을 줄이기 위한 가장 쉬운 방법은 압축 전송을 하는 것이다. 요즘은 많은 웹 애플리케이션들이 웹 서버의 압축 전송 기능을 이용하거나 자체적으로 압축해서 전송하는 경우가 많다.
[[위키노트:아파치|아파치]]에서는 요청에 대한 응답을 <tt>mod_deflate</tt> 모듈을 통해 gzip 압축해 전송할 수 있다. <tt>mod_deflate</tt> 모듈은 기본 모듈이기 때문에 따로 설치할 필요는 없다. 다만 설정에 따라 모듈이 적재되지 않았을 수도 있으니 아파치에 적재된 모듈을 확인한다.
[[작은숲:위키노트/아파치|아파치]]에서는 요청에 대한 응답을 <tt>mod_deflate</tt> 모듈을 통해 gzip 압축해 전송할 수 있다. <tt>mod_deflate</tt> 모듈은 기본 모듈이기 때문에 따로 설치할 필요는 없다. 다만 설정에 따라 모듈이 적재되지 않았을 수도 있으니 아파치에 적재된 모듈을 확인한다.
<source lang="console">
<syntaxhighlight lang="console">
# /usr/local/apache/bin/httpd -D DUMP_MODULES
# /usr/local/apache/bin/httpd -D DUMP_MODULES
Loaded Modules:
Loaded Modules:
43번째 줄: 43번째 줄:
  cband_module (shared)
  cband_module (shared)
  perl_module (shared)
  perl_module (shared)
</source>
</syntaxhighlight>
적재된 모듈 목록 중에 <code>deflate_module (shared)</code>가 있는 것을 확인할 수 있다. 만약 이 항목이 없다면 <code>httpd.conf</code>를 열어 아래 내용을 찾아 주석을 해제하도록 한다.
적재된 모듈 목록 중에 <code>deflate_module (shared)</code>가 있는 것을 확인할 수 있다. 만약 이 항목이 없다면 <code>httpd.conf</code>를 열어 아래 내용을 찾아 주석을 해제하도록 한다.
<source lang="apache">
<syntaxhighlight lang="apache">
LoadModule deflate_module modules/mod_deflate.so
LoadModule deflate_module modules/mod_deflate.so
</source>
</syntaxhighlight>
<code>httpd.conf</code>를 수정한 후에는 아파치를 재기동하고 적재된 모듈을 확인해서 <tt>mod_deflate</tt> 모듈이 제대로 올라왔는지 확인한다.
<code>httpd.conf</code>를 수정한 후에는 아파치를 재기동하고 적재된 모듈을 확인해서 <tt>mod_deflate</tt> 모듈이 제대로 올라왔는지 확인한다.
<source lang="console">
<syntaxhighlight lang="console">
# /etc/init.d/apachectl graceful
# /etc/init.d/apachectl graceful
</source>
</syntaxhighlight>
이제 <code>httpd.conf</code>나 <code>httpd-vhost.conf</code> 등의 설정 파일에서 <tt>mod_deflate</tt> 모듈에 대해 설정할 수 있다. 서버에서 서비스하는 모든 [[위키노트:웹사이트|웹사이트]]에 대해 <tt>mod_deflate</tt> 모듈의 설정을 적용하고자 한다면 <code>httpd.conf</code>에 아래 설정을 넣으면 될 것이고, 그렇지 않다면 각각의 가상 호스트 설정에 추가해도 된다. 만약 <code>.htaccess</code>를 사용할 수 있다면 거기에 넣어도 된다. 물론 <code>httpd.conf</code>나 <code>httpd-vhost.conf</code> 파일에 추가했다면 아파치를 재기동해야 적용된다.
이제 <code>httpd.conf</code>나 <code>httpd-vhost.conf</code> 등의 설정 파일에서 <tt>mod_deflate</tt> 모듈에 대해 설정할 수 있다. 서버에서 서비스하는 모든 [[작은숲:위키노트/웹사이트|웹사이트]]에 대해 <tt>mod_deflate</tt> 모듈의 설정을 적용하고자 한다면 <code>httpd.conf</code>에 아래 설정을 넣으면 될 것이고, 그렇지 않다면 각각의 가상 호스트 설정에 추가해도 된다. 만약 <code>.htaccess</code>를 사용할 수 있다면 거기에 넣어도 된다. 물론 <code>httpd.conf</code>나 <code>httpd-vhost.conf</code> 파일에 추가했다면 아파치를 재기동해야 적용된다.
<source lang="apache">
<syntaxhighlight lang="apache">
<IfModule deflate_module>
<IfModule deflate_module>
     SetOutputFilter DEFLATE
     SetOutputFilter DEFLATE
63번째 줄: 63번째 줄:
     CustomLog "logs/deflate_log" deflate
     CustomLog "logs/deflate_log" deflate
</ifModule>
</ifModule>
</source>
</syntaxhighlight>
위 설정은 그림 파일을 제외한 모든 파일을 압축해서 보내도록 하고 있다. 그리고 압축을 한 경우에는 얼마나 압축을 했는지 로그를 남긴다.
위 설정은 그림 파일을 제외한 모든 파일을 압축해서 보내도록 하고 있다. 그리고 압축을 한 경우에는 얼마나 압축을 했는지 로그를 남긴다.
만약 파일 종류에 따라 압축할 것인지 아닌지를 결정하려면 아래와 같이 <tt>AddOutputFilterByType</tt> 지시자를 사용한다.
만약 파일 종류에 따라 압축할 것인지 아닌지를 결정하려면 아래와 같이 <tt>AddOutputFilterByType</tt> 지시자를 사용한다.
<source lang="apache">
<syntaxhighlight lang="apache">
<IfModule deflate_module>
<IfModule deflate_module>
     AddOutputFilterByType DEFLATE text/html text/plain
     AddOutputFilterByType DEFLATE text/html text/plain
74번째 줄: 74번째 줄:
     AddOutputFilterByType DEFLATE text/javascript application/javascript application/x-javascript
     AddOutputFilterByType DEFLATE text/javascript application/javascript application/x-javascript
</ifModule>
</ifModule>
</source>
</syntaxhighlight>
위 설정은 위에서부터 [[위키노트:HTML|HTML]], [[위키노트:XML|XML]], [[위키노트:XHTML|XHTML]]/RSS, [[위키노트:CSS|CSS]], [[위키노트:자바스크립트|자바스크립트]] 파일을 압축해서 전송하도록 하는 것이다. 압축해서 전송할 파일의 MIME 형식을 적어주면 된다.  
위 설정은 위에서부터 [[작은숲:위키노트/HTML|HTML]], [[작은숲:위키노트/XML|XML]], [[작은숲:위키노트/XHTML|XHTML]]/RSS, [[작은숲:위키노트/CSS|CSS]], [[작은숲:위키노트/자바스크립트|자바스크립트]] 파일을 압축해서 전송하도록 하는 것이다. 압축해서 전송할 파일의 MIME 형식을 적어주면 된다.  
<tt>AddOutputFilterByType</tt> 지시자를 사용하기 위해서는 <tt>mod_filter</tt> 모듈이 필요하다. 혹시 아파치에 적재되지 않았다면 <code>httpd.conf</code> 파일에서 모듈 적재하는 부분을 찾아 주석을 해제하도록 한다.
<tt>AddOutputFilterByType</tt> 지시자를 사용하기 위해서는 <tt>mod_filter</tt> 모듈이 필요하다. 혹시 아파치에 적재되지 않았다면 <code>httpd.conf</code> 파일에서 모듈 적재하는 부분을 찾아 주석을 해제하도록 한다.
<source lang="apache">
<syntaxhighlight lang="apache">
<IfModule deflate_module>
<IfModule deflate_module>
     DeflateCompressionLevel 9
     DeflateCompressionLevel 9
</ifModule>
</ifModule>
</source>
</syntaxhighlight>
<tt>DeflateCompressionLevel</tt> 지시자는 얼마나 압축할 것인가를 나타낸다. 기본값은 [http://www.zlib.net/manual.html Zlib의 기본값]인 <tt>6</tt>이고, <tt>1</tt>부터 <tt>9</tt>까지 설정할 수 있으며 <tt>9</tt>가 가장 많이 압축한다. 하지만 그만큼 CPU를 많이 사용하기 때문에 적당한 값을 주는 것이 좋다. 그리고 <tt>DeflateCompressionLevel</tt> 지시자는 아파치 설정 파일과 가상 호스트 설정 안에서만 사용할 수 있다.
<tt>DeflateCompressionLevel</tt> 지시자는 얼마나 압축할 것인가를 나타낸다. 기본값은 [http://www.zlib.net/manual.html Zlib의 기본값]인 <tt>6</tt>이고, <tt>1</tt>부터 <tt>9</tt>까지 설정할 수 있으며 <tt>9</tt>가 가장 많이 압축한다. 하지만 그만큼 CPU를 많이 사용하기 때문에 적당한 값을 주는 것이 좋다. 그리고 <tt>DeflateCompressionLevel</tt> 지시자는 아파치 설정 파일과 가상 호스트 설정 안에서만 사용할 수 있다.
더 많은 설정에 대해서는 [http://httpd.apache.org/docs/2.4/mod/mod_deflate.html 메뉴얼]을 참고하도록 하자.
더 많은 설정에 대해서는 [http://httpd.apache.org/docs/2.4/mod/mod_deflate.html 메뉴얼]을 참고하도록 하자.
88번째 줄: 88번째 줄:
* http://www.whatsmyip.org/http-compression-test/
* http://www.whatsmyip.org/http-compression-test/
{{아파치}}
{{아파치}}
[[분류:공유]]
[[분류:위키노트/공유]]
[[분류:웹]]
[[분류:위키노트/웹]]
[[분류:서버]]
[[분류:위키노트/서버]]
[[분류:리눅스]]
[[분류:리눅스]]
[[분류:소프트웨어 설정]]{{퍼온문서|위키노트|{{#invoke:string|replace|위키노트:|}}}}[[분류:위키노트에서 가져온 문서]]
[[분류:위키노트/소프트웨어 설정]]{{퍼온문서|위키노트|{{#invoke:string|replace|{{PAGENAME}}|위키노트:|}}}}[[분류:위키노트에서 가져온 문서]]

2022년 5월 7일 (토) 19:22 기준 최신판

웹 서버에서 트래픽을 줄이기 위한 가장 쉬운 방법은 압축 전송을 하는 것이다. 요즘은 많은 웹 애플리케이션들이 웹 서버의 압축 전송 기능을 이용하거나 자체적으로 압축해서 전송하는 경우가 많다. 아파치에서는 요청에 대한 응답을 mod_deflate 모듈을 통해 gzip 압축해 전송할 수 있다. mod_deflate 모듈은 기본 모듈이기 때문에 따로 설치할 필요는 없다. 다만 설정에 따라 모듈이 적재되지 않았을 수도 있으니 아파치에 적재된 모듈을 확인한다.

# /usr/local/apache/bin/httpd -D DUMP_MODULES
Loaded Modules:
 core_module (static)
 so_module (static)
 http_module (static)
 mpm_event_module (static)
 authn_file_module (shared)
 authn_core_module (shared)
 authz_host_module (shared)
 authz_groupfile_module (shared)
 authz_user_module (shared)
 authz_core_module (shared)
 access_compat_module (shared)
 auth_basic_module (shared)
 cache_module (shared)
 cache_disk_module (shared)
 socache_shmcb_module (shared)
 reqtimeout_module (shared)
 ext_filter_module (shared)
 filter_module (shared)
 deflate_module (shared)
 mime_module (shared)
 log_config_module (shared)
 env_module (shared)
 expires_module (shared)
 headers_module (shared)
 setenvif_module (shared)
 version_module (shared)
 ssl_module (shared)
 unixd_module (shared)
 status_module (shared)
 autoindex_module (shared)
 vhost_alias_module (shared)
 negotiation_module (shared)
 dir_module (shared)
 alias_module (shared)
 rewrite_module (shared)
 php5_module (shared)
 cband_module (shared)
 perl_module (shared)

적재된 모듈 목록 중에 deflate_module (shared)가 있는 것을 확인할 수 있다. 만약 이 항목이 없다면 httpd.conf를 열어 아래 내용을 찾아 주석을 해제하도록 한다.

LoadModule deflate_module modules/mod_deflate.so

httpd.conf를 수정한 후에는 아파치를 재기동하고 적재된 모듈을 확인해서 mod_deflate 모듈이 제대로 올라왔는지 확인한다.

# /etc/init.d/apachectl graceful

이제 httpd.confhttpd-vhost.conf 등의 설정 파일에서 mod_deflate 모듈에 대해 설정할 수 있다. 서버에서 서비스하는 모든 웹사이트에 대해 mod_deflate 모듈의 설정을 적용하고자 한다면 httpd.conf에 아래 설정을 넣으면 될 것이고, 그렇지 않다면 각각의 가상 호스트 설정에 추가해도 된다. 만약 .htaccess를 사용할 수 있다면 거기에 넣어도 된다. 물론 httpd.confhttpd-vhost.conf 파일에 추가했다면 아파치를 재기동해야 적용된다.

<IfModule deflate_module>
    SetOutputFilter DEFLATE
    SetEnvIfNoCase Request_URI "\.(?:gif|jpe?g|png)$" no-gzip
    DeflateFilterNote Input instream
    DeflateFilterNote Output outstream
    DeflateFilterNote Ratio ratio
    LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
    CustomLog "logs/deflate_log" deflate
</ifModule>

위 설정은 그림 파일을 제외한 모든 파일을 압축해서 보내도록 하고 있다. 그리고 압축을 한 경우에는 얼마나 압축을 했는지 로그를 남긴다. 만약 파일 종류에 따라 압축할 것인지 아닌지를 결정하려면 아래와 같이 AddOutputFilterByType 지시자를 사용한다.

<IfModule deflate_module>
    AddOutputFilterByType DEFLATE text/html text/plain
    AddOutputFilterByType DEFLATE text/xml application/xml
    AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE text/javascript application/javascript application/x-javascript
</ifModule>

위 설정은 위에서부터 HTML, XML, XHTML/RSS, CSS, 자바스크립트 파일을 압축해서 전송하도록 하는 것이다. 압축해서 전송할 파일의 MIME 형식을 적어주면 된다. AddOutputFilterByType 지시자를 사용하기 위해서는 mod_filter 모듈이 필요하다. 혹시 아파치에 적재되지 않았다면 httpd.conf 파일에서 모듈 적재하는 부분을 찾아 주석을 해제하도록 한다.

<IfModule deflate_module>
    DeflateCompressionLevel 9
</ifModule>

DeflateCompressionLevel 지시자는 얼마나 압축할 것인가를 나타낸다. 기본값은 Zlib의 기본값6이고, 1부터 9까지 설정할 수 있으며 9가 가장 많이 압축한다. 하지만 그만큼 CPU를 많이 사용하기 때문에 적당한 값을 주는 것이 좋다. 그리고 DeflateCompressionLevel 지시자는 아파치 설정 파일과 가상 호스트 설정 안에서만 사용할 수 있다. 더 많은 설정에 대해서는 메뉴얼을 참고하도록 하자.

참고

틀:아파치

이 작은숲 문서의 출처는 위키노트의 위키노트/아파치 mod deflate 모듈 문서입니다.