Apache - 모듈 추가 설치및 캐싱 컨트롤
Posted 10 12, 2013 13:09, Filed under: WAS/ApacheTomcat# 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
/ 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>
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>
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] -- 추가
RewriteBase /
RewriteRule ^(.*).(js|css|jpg|gif)$ - [L] -- 추가
> 설정후 헤더정보 확인
flash swf 파일

image 파일

※ 위 내용은, 여러 자료를 참고하거나 제가 주관적으로 정리한 것입니다.
잘못된 정보나 보완이 필요한 부분을, 댓글 또는 메일로 보내주시면 많은 도움이 되겠습니다.
잘못된 정보나 보완이 필요한 부분을, 댓글 또는 메일로 보내주시면 많은 도움이 되겠습니다.
"WAS / ApacheTomcat" 분류의 다른 글
Apache 2.4.6 & Tomcat 8.0.0-RC3 설치및 연동 (0) | 2013/09/30 |
Apache 2.4.x Compile and Install, openssl, tomcat-connector (0) | 2013/02/22 |
Was - Tomcat Contexts 추가(하나의 host에 app추가 운영) (0) | 2012/03/30 |
WAS - Apache, Tomcat : Host 추가( 2개 사용) 연동 셋팅 (0) | 2010/10/26 |
Apache - VirtualHost 추가 ( httpd.conf 설정) (0) | 2009/06/13 |
Response :
0 Trackback
,
0 Comment
Trackback URL : http://develop.sunshiny.co.kr/trackback/963