아파치 모듈중 파일전송시 압축해서 전송해주는 모듈입니다.


tmp디렉토리는 /dev/shm 공유메모리를 사용하신다면
/dev/shm 이나 /var/shm(각 시스템의 설정에 맞게)로 설정하면 메모리상에서 압축을 하기때문에 더 좋은 퍼포먼스를

보일걸로 생각됩니다.


아파치가 이미설치되어있다면 dso방식으로 설치할수있습니다.
아래링크에서 소스를 받고
apxs -i -a -c mod_gzip.c
명령으로 현재 설치된 아파치에 모듈로 붙일수있습니다.


apxs의 위치는 소스로 설치한 디렉토리의 /bin에 있으니 각시스템에 맞게(rpm설치시 기본패스에 있음)변경하세요.
그리고 httpd.conf파일을 아래에 나온대로 설정한후 /apache/bin_path/httpd -t 명령으로 설정파일을 검사한뒤
아파치를 재시작하면됩니다.

http://www.remotecommunications.com/apache/mod_gzip/src/1.3.19.1a/mod_gz...



######################
#아래는 원본글입니다.#
######################

작성자 : thinker0


Apache mod_gzip.c Module install
1. Module 설치하기
이것 무엇에 쓰는 물건인고 하면는~~~~~. 웹서버에서 전송되는 인련의 파일을 압축기술을 이용하여 앞축하여 전송합니다.

300K (Text) -> 50K로 압축해서 전송합니다. 파일 마다 다름니다만 Text 파일 전송시에는 무지 막지한 전송 속도를 자랑합니다. (당근이지 않을까요 300K 랑 50K는 무지 차이가 많이 나지요 !!!), 이미지 파일은 압축하지 않습니다. 2중 압축되니까요 효율이 떨어지지 않을까 십네요.
***** Linux 기종이 아니면 "2. Static Complie" 을 참조하세요. *****
1-1. File Download (mod_gzip.so)
http://www.remotecommunications.com/apache/mod_gzip/ 여기에서 "mod_gzip.so" (85K) (Linux용)을 Download 한다.

이파일을 "/etc/httpd/modules" 또는 "/usr/local/apache/libexec"에 복사한다. (정확하게 확인 하시고 복사하세요.)
1-2. httpd -l (Module 확인)
아래 내용중 "mod_so.c"가 있어야 합니다. 만약 없으면 "2. Static Complie" 읽어 보세요.
# httpd -l
Compiled-in modules:
http_core.c
mod_so.c
1-3. Apache "httpd.conf" Setting.
아래의 내용을 "httpd.conf"파일에 적용 시기시면 됩니다. Error가 날경우 아래의 "LoadModule, AddModule"을 주석 처리 하면 모듈이 작동 되지 않습니다 (맨앞에 '#'을 넣으세요 ^^;).
*주의*) 아래의 내용중 '#'이후의 내용은 넣지 마세요. 설명입니다. (이것 있으면 Error 납니다. httpd -t 했을때)
LoadModule gzip_module modules/mod_gzip.so # 만약 : /etc/httpd/modules 이면
LoadModule gzip_module libexec/mod_gzip.so # 또는 : /usr/local/apache/libexec 이면

AddModule mod_gzip.c

<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_min_http 1000 # 1000 = HTTP/1.0, 1001 = HTTP/1.1
mod_gzip_minimum_file_size 300 # 압축할 최소 Size
mod_gzip_maximum_file_size 0
mod_gzip_maximum_inmem_size 100000
mod_gzip_keep_workfiles No
mod_gzip_item_include file .html$ # 압축할 파일들 설정
mod_gzip_item_include file .htm$
mod_gzip_item_include file .jsp$
mod_gzip_item_include file .php$
mod_gzip_item_include file .pl$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^text/.html # 설명서에는 이렇게 되있는데
# 다음줄을 넣어야 되더군요.
mod_gzip_item_include mime ^text/html$ # HTML 형식 모두 압축
mod_gzip_item_include mime ^application/x-httpd-php # PHP 스크립트 압축
mod_gzip_item_include mime ^httpd/unix-directory$
mod_gzip_item_include handler ^perl-script$
mod_gzip_item_include handler ^server-status$
mod_gzip_item_include handler ^server-info$
mod_gzip_item_exclude file .css$ # 압축 제외 파일들.
mod_gzip_item_exclude file .js$
mod_gzip_item_exclude mime ^image/.*

mod_gzip_temp_dir /dev/shm # 이것 Linux용이고요 보통 '/tmp'하시면됩니다.
# 최고의 속도를 낼려면 RamDisk 의 위치를 넣으세요.
LogFormat "%h %l %u %t "%V %r" %>s %b mod_gzip: # 여기서 부터 =====
%{mod_gzip_result}n In:%{mod_gzip_input_size}n
Out:%{mod_gzip_output_size}n:%{mod_gzip_compression_ratio}npct."
common_with_mod_gzip_info2 # ==== 여기까지 한줄입니다 착오 없으시길
CustomLog logs/mod_gzip common_with_mod_gzip_info2 # 이 두줄은 Log 가 필요하신분만 넣으세요.
</IfModule>
1-4. Start web server
httpd -t
정상인지 확인하시고. 만약 Error 이면 해당줄을 다시한번 찾아 보세요. "OK"가나오면 됩니다. 그리고 "mod_gzip_temp_dir"파일은 nobody 가 일고 쓸수 있어야 합니다. 당현이 '/tmp' 폴더는 모든 사용자가 사용 할수 있는 폴더 이니까요.
service httpd restart
확인은 logs/mod_gzip Log 파일 참조하세요.
2. Static Complie (설치)
2-1. File Download
http://www.remotecommunications.com/apache/mod_gzip/ 에서 "mod_gzip.c" (300K) 을 Download 한다. 파일을 Apache Source 폴더에 Copy 한다. ('apache/src/modules/extra/') (정확하게 확인 하시고 복사하세요.)
2-2. Source Modify
apache/src/Configuration... (1개의 파일에 다음내용을 추하간다 "AddModule modules/extra/mod_gzip.o")
만약 오류가 난다면. "src/Confguration*" 파일을 'vi'로 열어서 주석 처리 (첫 줄에 '#') 하시면 됩니다. 'mod_gzip.c'파일은 삭제 하지 않으셔도 됩니다. 아래의 'Congiguration.tmpl' 파일은 'configure'가 실행 할때 읽어 들이는 파일입니다. 초기 기초 파일입니다. 수정할때 주의 하세요.
# cd ..../apache/ # Apache 소스 있는곳
# echo "AddModule modules/extra/mod_gzip.o" >> src/Configuration.tmpl
# configure 생성하기 전에 원시 파일에 모듈추가
# ./configure --prefix=...... # configure 실행 필요한 옵션 넣으세요.
# make # 컴파일
# service httpd stop # Web Server Stop
# make install # Apache Install
# httpd -l # 컴파일 된 모듈 확인
Compiled-in modules:
http_core.c
...
mod_so.c
mod_redurl.c # 한글 파일 처리 모듈
mod_gzip.c # 이것 이 있으면 정상.
mod_php4.c # PHP 4 지원 모듈
# service httpd restart # Web Server Start
2-3. Apache "httpd.conf" Setting.
mod_gzip_item_include 이 환경값에는 앞축할 파일을 선언하는 곳입니다. FILE 형태, 또는 MIME Type... 등이 들어 갑니다. mod_gzip_item_exclude 이 환경값에는 압축에서 제외될 파일을 선언 하는 곳입니다. *주의*) 아래의 내용중 '#'이후의 내용은 넣지 마세요. 설명입니다. (이것 있으면 Error 납니다. httpd -t 했을때)
<IfModule mod_gzip.c>
mod_gzip_on Yes # 엔진 가용
mod_gzip_dechunk Yes # 압축 (!?)
mod_gzip_min_http 1000 # 1000 = HTTP/1.0, 1001 = HTTP/1.1
mod_gzip_minimum_file_size 300 # 압축할 최소 Size
mod_gzip_maximum_file_size 0
mod_gzip_maximum_inmem_size 100000
mod_gzip_keep_workfiles No
mod_gzip_item_include file .html$ # 압축할 파일들 설정
mod_gzip_item_include file .htm$
mod_gzip_item_include file .jsp$
mod_gzip_item_include file .php$
mod_gzip_item_include file .pl$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^text/.html
mod_gzip_item_include mime ^text/html$ # HTML 형식 모두 압축
mod_gzip_item_include mime ^application/x-httpd-php # PHP 스크립트 압축
mod_gzip_item_include mime ^httpd/unix-directory$
mod_gzip_item_include handler ^perl-script$
mod_gzip_item_include handler ^server-status$
mod_gzip_item_include handler ^server-info$
mod_gzip_item_exclude file .css$ # 압축 제외 파일들.
mod_gzip_item_exclude file .js$
mod_gzip_item_exclude mime ^image/.*

mod_gzip_temp_dir /dev/shm # 이것 Linux용이고요 보통 '/tmp'하시면됩니다.
# 최고의 속도를 낼려면 RamDisk 의 위치를 넣으세요.
LogFormat "%h %l %u %t "%V %r" %>s %b mod_gzip: # 여기서 부터
%{mod_gzip_result}n In:%{mod_gzip_input_size}n
Out:%{mod_gzip_output_size}n:%{mod_gzip_compression_ratio}npct."
common_with_mod_gzip_info2 # 여기까지 한줄입니다 착오 없으시길
CustomLog logs/mod_gzip common_with_mod_gzip_info2 # Log 가 필요하신분만 넣으세요.
</IfModule>
2-4. Start web server
httpd -t
정상인지 확인하시고. 만약 Error 이면 해당줄을 다시한번 찾아 보세요. "OK"가나오면 됩니다. 그리고 "mod_gzip_temp_dir"파일은 nobody 가 읽고 쓸수(RW) 있어야 합니다. 당현이 '/tmp' 폴더는 모든 사용자가 사용 할수 있는 폴더 이니까요.
service httpd restart
확인은 logs/mod_gzip Log 파일 참조하세요.
Copyleft (L) thinker at iam

---------------------------------------------------------

관련 링크: http://apache.kr.net/documents/mod_gzip_kr.html

+ Recent posts