# Apache 모듈 추가 설치및 캐싱 컨트롤


> 모듈 추가 설치 apxs 옵션

DSO 설치과 설정 옵션
-i  : 설치를 지시한다. 여러 동적공유객체를 서버의 modules 디렉토리에 설치한다.
-a : 아파치 httpd.conf 설정파일에 적절한 LoadModule 줄을 추가하거나 이미 있다면 활성화하여 모듈을 사용하도록 만든다.

DSO 컴파일 옵션
-c : 컴파일을 지시한다.
       먼저 files에서 C 소스파일들(.c)을 오브젝트파일(.o)로 컴파일하고,
       files의 나머지 오브젝트파일들(.o과 .a)과 링크하여 동적공유객체 dsofile을 만든다.
       -o 옵션을 사용하지않으면 files의 첫번째 파일명에서 이름을 추측하여 보통 mod_name.so를 사용한다.


> apxs - APache eXtenSion 정보
http://httpd.apache.org/docs/2.4/programs/apxs.html


> Apache 모듈 추가 설치(mod_expires.c)
- 현재 설치된 apache 버전과 동일한 apache 디렉토리의 mod_expires.c 파일을 이용.
- 문법 : $APACHE_HOME/bin/apxs -i -a -c [아파치 설치 파일]/modules/[모듈명].c

> 아파치 모듈 mod_expires 정보
http://httpd.apache.org/docs/2.4/mod/mod_expires.html

[root@sunshiny]# /usr/local/apache/bin/apxs -i -a -c /data/Install/httpd-2.2.22/modules/metadata/mod_expires.c
/   Expires/apr/build-1/libtool --silent --mode=compile gcc -prefer-pic   -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/apache/include  -I/   Expires/apr/include/apr-1   -I/   Expires/apr/include/apr-1   -c -o /data/Install/httpd-2.2.22/modules/metadata/mod_expires.lo /data/Install/httpd-2.2.22/modules/metadata/mod_expires.c && touch /data/Install/httpd-2.2.22/modules/metadata/mod_expires.slo
/   Expires/apr/build-1/libtool --silent --mode=link gcc -o /data/Install/httpd-2.2.22/modules/metadata/mod_expires.la  -rpath /usr/local/apache/modules -module -avoid-version    /data/Install/httpd-2.2.22/modules/metadata/mod_expires.lo
/usr/local/apache/build/instdso.sh SH_LIBTOOL='/   Expires/apr/build-1/libtool' /data/Install/httpd-2.2.22/modules/metadata/mod_expires.la /usr/local/apache/modules
/   Expires/apr/build-1/libtool --mode=install cp /data/Install/httpd-2.2.22/modules/metadata/mod_expires.la /usr/local/apache/modules/
libtool: install: cp /data/Install/httpd-2.2.22/modules/metadata/.libs/mod_expires.so /usr/local/apache/modules/mod_expires.so
libtool: install: cp /data/Install/httpd-2.2.22/modules/metadata/.libs/mod_expires.lai /usr/local/apache/modules/mod_expires.la
libtool: install: cp /data/Install/httpd-2.2.22/modules/metadata/.libs/mod_expires.a /usr/local/apache/modules/mod_expires.a
libtool: install: chmod 644 /usr/local/apache/modules/mod_expires.a
libtool: install: ranlib /usr/local/apache/modules/mod_expires.a
libtool: finish: PATH="/usr/lib64/qt-3.3/bin:/   Expires/sbin:/   Expires/bin:/sbin:/bin:/usr/sbin:/usr/bin:/app/java/jdk1.7.0_10/bin:/root/bin:/usr/local/mysql/bin:/sbin" ldconfig -n /usr/local/apache/modules
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/local/apache/modules

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
chmod 755 /usr/local/apache/modules/mod_expires.so
[activating module `expires' in /usr/local/apache/conf/httpd.conf]

[root@sunshiny modules]# ls
mod_expires.so -- 파일 생성 확인

-- httpd.conf 파일의 62라인에 expires_module 추가 확인됨
[root@sunshiny modules]# grep -n expires_module ../conf/httpd.conf
62:LoadModule expires_module     modules/mod_expires.so

> Apache ExpiresAction 설정 추가
- 정적 컨텐츠(html/image/js 등)를 로컬 PC의 캐시에 저장하여, 페이지 재 호출시 로컬에 캐시된 정보를 읽어들여 속도 향상 효과.


* 설정 기준
  access
  now ('access'와 같음)
  modification

* 기간
  years
  months
  weeks
  days
  hours
  minutes
  seconds

1) 모든 호스트에 대해서 캐시설정, 일부 디렉토리 제외
<IfModule mod_expires.c>
   ExpiresActive On
   ExpiresDefault "access plus 1 month" -- 접근후 기본 한달 동안 클라이언트에 캐싱

   ExpiresByType image/bmp "access plus 1 month"
   ExpiresByType image/cgm "access plus 1 month"
   ExpiresByType image/gif "access plus 1 month"
   ExpiresByType image/jpg "access plus 1 month"
   ExpiresByType image/jpeg "access plus 1 month"
   ExpiresByType image/png "access plus 1 month"
   ExpiresByType image/tiff "access plus 1 month"

   ExpiresByType video/mpeg "access plus 1 years"
   ExpiresByType video/quicktime "access plus 1 years"
   ExpiresByType video/x-msvideo "access plus 1 years"

   ExpiresByType audio/basic "access plus 1 years"
   ExpiresByType audio/midi "access plus 1 years"
   ExpiresByType audio/mpeg "access plus 1 years"
   ExpiresByType audio/x-aiff "access plus 1 years"
   ExpiresByType audio/x-mpegurl "access plus 1 years"
   ExpiresByType audio/x-pn-realaudio "access plus 1 years"
   ExpiresByType audio/x-wav  "access plus 1 years"

   ExpiresByType application/x-shockwave-flash  "access plus 1 years"
   ExpiresByType application/javascript "access plus 1 years"
   ExpiresByType application/x-javascript "access plus 1 years"

   ExpiresByType text/css "access plus 1 month"
   ExpiresByType text/javascript "access plus 1 years"
   ExpiresByType text/x-javascript "access plus 1 years"

# 제외할 디렉토리 설정
#<Directory "/usr/local/apache/htdocs/img">
#    ExpiresActive Off
#</Directory>

</IfModule>

2) 특정 호스트에 대해서만 캐시 설정(VirtualHost에 추가)
<VirtualHost *>
   ServerName test.domain.co.kr
   DocumentRoot /usr/local/apache/htdocs

<Directory "/usr/local/apache/htdocs/img">
   ExpiresActive On
   ExpiresDefault "access plus 1 month"

   ExpiresByType image/jpeg "acces plus 1 month"
   ExpiresByType image/gif "acces plus 1 month"
</Directory>
</VirtualHost>

> Apache mod_rewrite 모듈 사용시 확인
 - RewriteRule 정보에 캐싱할 확장자 추가

RewriteEngine On
RewriteBase /

RewriteRule ^(.*).(js|css|jpg|gif)$ - [L]   -- 추가


> 설정후 헤더정보 확인

flash swf 파일

사용자 삽입 이미지













image 파일

사용자 삽입 이미지



※ 위 내용은, 여러 자료를 참고하거나 제가 주관적으로 정리한 것입니다.
   잘못된 정보나 보완이 필요한 부분을, 댓글 또는 메일로 보내주시면 많은 도움이 되겠습니다.
10 12, 2013 13:09 10 12, 2013 13:09


Trackback URL : http://develop.sunshiny.co.kr/trackback/963

Leave a comment
[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다


Recent Posts

  1. HDFS - Python Encoding 오류 처리
  2. HP - Vertica ROS Container 관련 오류...
  3. HDFS - Hive 실행시 System Time 오류
  4. HP - Vertica 사용자 쿼리 이력 테이블...
  5. Client에서 HDFS 환경의 데이터 처리시...

Recent Comments

  1. 안녕하세요^^ 배그핵
  2. 안녕하세요^^ 도움이 되셨다니, 저... sunshiny
  3. 정말 큰 도움이 되었습니다.. 감사합... 사랑은
  4. 네, 안녕하세요. 댓글 남겨 주셔서... sunshiny
  5. 감사합니다 많은 도움 되었습니다!ㅎㅎ 프리시퀸스

Recent Trackbacks

  1. Roku App Development Roku App Development 3 07
  2. safety goggles safety goggles 2 07
  3. custom wheelchair for dogs custom wheelchair for dogs 30 06
  4. phoenix digital marketing agency phoenix digital marketing agency 29 06
  5. streaming tv channels streaming tv channels 28 06

Calendar

«   07 2020   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

Bookmarks

  1. 위키피디아
  2. MysqlKorea
  3. 오라클 클럽
  4. API - Java
  5. Apache Hadoop API
  6. Apache Software Foundation
  7. HDFS 생태계 솔루션
  8. DNSBL - Spam Database Lookup
  9. Ready System
  10. Solaris Freeware
  11. Linux-Site
  12. 윈디하나의 솔라나라

Site Stats

TOTAL 2998813 HIT
TODAY 106 HIT
YESTERDAY 905 HIT