블로그 이미지
좋은느낌/원철
이것저것 필요한 것을 모아보렵니다.. 방문해 주셔서 감사합니다..

calendar

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

Notice

    2009. 6. 29. 17:05 시사/요즘 세상은

       
     
       
     
    [네이션코리아] 현대차가 품질 최우선 경영의 결실로 신차품질 최정상에 등극했다.

    현대자동차는 美 시장조사기관인 제이디파워가 22일(현지시각) 발표한 2009년 신차 품질조사(IQS)에서 전년(114점)보다 19점 향상된 95점을 획득, 일반브랜드 부문에서 역대 최고점수를 기록하며 1위를 기록했다고 밝혔다.

    이번 현대차의 신차품질조사 1위는 지난 2006년에 이어 3년 만에 재등극한 것으로, 현대차는 혼다(99점, 2위), 도요타(101점, 3위) 등 세계 최고의 품질력을 자랑하는 글로벌 업체들을 누르고 세계 최정상의 기업으로 우뚝 섰다.

    프리미엄 브랜드를 포함한 전체 순위에서도 현대차는 렉서스, 포르쉐, 캐딜락에 이어 4위를 기록해 벤츠, BMW, 아우디 등 세계 최고급 럭셔리 브랜드들을 제치고 최상위권에 올랐다.

    특히 현대차는 지난 2004년 혼다가 세웠던 일반브랜드 부문 역대 최고점수인 99점을 갈아치우며, 신차품질지수 일반브랜드 부문 역사상 최고점수를 기록했다.

    이와 함께, 기아차도 전년(119점)보다 7점 향상된 112점을 획득, 2001년 이후 꾸준한 점수 향상을 보이며, 일반브랜드 부문 9위를 기록했다.

    현대차 관계자는 "현대차는 지난해 12월 타우엔진의 워즈오토 10대 최고 엔진 선정에 이어 지난 1월 프리미엄 세단 '제네시스'의 '2009 북미 올해의 차' 선정 등 최고의 품질력을 바탕으로 한 고급차를 선보이며, 이번 품질조사에서 최정상에 등극하는 등 세계 최고의 품질력을 다시 한번 입증했다"며, "현대차가 이 자리에 오르기까지는 1999년 이후부터 지속적으로 추진해 온 품질경영이 있었기에 가능했다"고 밝혔다.

    한편, 차급별 평가에서는 현대차의 아반떼가 준중형차급 1위로 선정돼, 세그먼트 위너상(Segment Winner)을 수상하는 영예를 안았으며, 베르나는 소형차급 2위에 선정되는 등 현대차는 차급별 평가에서도 우수한 평가를 받았다.

    또한 제네시스는 출시 첫 해에 "2009년 신차 및 개조차 부문" 에서 84점을 기록하며 1위에 랭크 되면서, 고급차 브랜드인 렉서스(84점)와 동등 품질수준을 달성하는 기염을 토했다.

    이와 관련 제이디파워사 관계자는 신차 출시 첫 해에 우수한 품질성과를 보이는 것은 매우 어려운 일임에도 불구하고 이번 조사에서 현대 제네시스, 기아 모하비 등은 각 차급별 평가에서 우수한 실적을 기록하였다며 현대·기아차의 신차 개발 능력을 높이 평가했다.

    이날 발표된 제이디파워의 신차품질조사는 지난해 11월부터 올해 1월까지 미국에서 판매된 차량을 대상으로, 구입 후 3개월이 지난 차량의 고객들에게 228개 항목에 대한 초기품질 만족도를 100대당 불만건수로 조사한 결과로 점수가 낮을수록 높은 품질만족도를 나타낸다.

    이번 조사를 담당한 미국 제이디 파워사는 1968년도에 설립된 자동차관련 소비자 만족도 조사 전문기관으로, 조사결과는 미국 소비자들의 자동차 구매기준으로 이용되고 있다. 

    posted by 좋은느낌/원철
    2009. 6. 29. 17:04 시사/요즘 세상은

    현대자동차(대표 정몽구)는 미국 시장조사기관 제이디파워(J.D.Power)가 22일(현지시간) 발표한 2009년 신차 품질조사(IQS: Initial Quality Study)에서 전년(114점)보다 19점 향상된 95점을 획득, 일반브랜드 부문에서 역대 최고점수를 기록하며 1위를 기록했다고 23일 밝혔다.

    제이디파워의 신차품질조사는 지난해 11월부터 올해 1월까지 미국에서 판매된 차량을 대상으로, 구입 후 3개월이 지난 차량의 고객들에게 228개 항목에 대한 초기품질 만족도를 100대당 불만건수로 조사한 결과로 점수가 낮을수록 높은 품질만족도를 나타낸다.

    이번 현대차의 신차품질조사 1위는 지난 2006년에 이어 3년 만에 재등극한 것으로, 현대차는 혼다(99점, 2위), 도요타(101점, 3위) 등 세계 최고의 품질력을 자랑하는 글로벌 업체들을 누르고 세계 최정상의 기업으로 우뚝 섰다.

    프리미엄 브랜드를 포함한 전체 순위에서도 현대차는 렉서스, 포르쉐, 캐딜락에 이어 4위를 기록해 벤츠, BMW, 아우디 등 세계 최고급 럭셔리 브랜드들을 제치고 최상위권에 올랐다.

    특히 현대차는 지난 2004년 혼다가 세웠던 일반브랜드 부문 역대 최고점수인 99점을 넘어서 신차품질지수 일반브랜드 부문 역사상 최고점수를 기록했다.

    이와 함께, 기아차도 전년(119점)보다 7점 향상된 112점을 획득, 2001년 이후 꾸준한 점수 향상을 보이며, 일반브랜드 부문 9위를 기록했다.

    현대차 관계자는 "현대차는 지난해 12월 타우엔진의 워즈오토 10대 최고 엔진 선정에 이어 지난 1월 프리미엄 세단 `제네시스'의 `2009 북미 올해의 차' 선정에 이어 이번 품질조사에서 최정상에 등극하는 등 세계 최고의 품질력을 다시 한번 입증했다"라며 "현대차가 이 자리에 오르기까지는 1999년 이후부터 지속적으로 추진해 온 품질경영이 있었기에 가능했다"고 밝혔다.
    한편, 차급별 평가에서는 현대차의 아반떼가 준중형차급 1위로 선정돼, 세그먼트 위너상(Segment Winner)을 수상하는 영예를 안았으며, 베르나는 소형차급 2위에 선정되는 등 현대차는 차급별 평가에서도 우수한 평가를 받았다.
    posted by 좋은느낌/원철
    2009. 6. 29. 16:35 개발/JSP/Servlet

    Apache 설정 및 톰캣 연동

    1. 아파치, 톰캣 설치

    1.1 윈도우에서 설치

    Tomcat 설치

    Apache 설치

    mod_jk 다운로드

    1.2 리눅스에서 설치

    리눅스 아파치 설치

    linux 에서 mod_jk 생성

    2. 아파치, 톰캣 연동

    참고1. server.xml의 구조
    <Server>
          |     
          +---<Service>
                      |
                      +---<Connector>
                      |
                      +---<Engine>
                                  |
                                  +---<DefaultContext>
                                  |
                                  +---<Realm>
                                  |
                                  +---<Logger>
                                  |
                                  +---<Host>
                                              |
                                              +---<Context>
                                              |
                                              +---<Value>
                                              |
                                              +---<Realm>
                                              |
                                              +---<Logger>
    

    2.1 Tomcat Connectors 복사

    • 다운로드한 mod_jk(mod_jk.so)파일을 %APACHE_HOME%/modules 안에 복사한다.

    2.2 workers.properties 파일 설정

    참고2. Tomcat Worker
    • 톰캣 워커는(Tomcat worker) 웹서버로부터의 서블릿 요청을 톰캣 프로세스(Worker)에게 전달하여 요청을 처리하는 톰캣 인스턴스이다.
    • 대부분 하나의 worker를 사용하나, load 밸런싱이나 site 파티셔닝을 위해 여러개의 worker를 사용 할 수 있다.
    • 서로 다른 톰캣 워커에 의해 서로 다른 context를 서비스 할 수 있다.
    • 워커 타입에는 ajp12, ajp13, jni, lb 등이 있다.
    • http://tomcat.apache.org/connectors-doc/reference/workers.html
    • apache와 tomcat를 연동하기위해서는 workers.properties 파일을 설정해야 한다.
    • %APACHE_HOME%/conf/workers.properties
    workers.properties 예제
    workers.tomcat_home=D:\tomcat5.5
    workers.java_home=C:\jdk1.5
    ps=/
    
    worker.list=oracleclub, wiki, dev
    
    #local.oracleclub.com
    worker.oracleclub.port=7003
    worker.oracleclub.host=localhost
    worker.oracleclub.type=ajp13
    
    #wiki.oracleclub.com
    worker.wiki.port=7004
    worker.wiki.host=localhost
    worker.wiki.type=ajp13
    
    #dev.oracleclub.com
    worker.dev.port=7005
    worker.dev.host=localhost
    worker.dev.type=ajp13
    
    참고3. 톰캣의 <Connector> 요소
    • 사용자의 요청을 <Engine>에 보내주는 역할을 하는것이 <Connector>이다. <Service>는 하나 이상의 <Connector>를 가져야 한다.
    • 사용자는 HTTP 또는 HTTPS/SSL등 여러가지 방법으로 <Engine>에 요청을 보내는데, 이들의 접속 처리는 <Connector>에 맡겨진다.
    • 각 프로토콜에 대해 복수의 <Connector>를 가지며, 어떤 요청이 와도 <Engine>이 동일하게 처리하고, 응답을 <Connector>에 맡길 수 있다.

    2.3 httpd.conf 파일 설정

    • %APACHE_HOME%/conf/httpd.conf 파일을 수정
      • jk_module 추가
      • workers.properties 파일 추가
      • virtualhost 설정 추가 (이 문서에서는 "conf/vhosts/*.conf" 파일로 추가 하였음)
    httpd.conf
    # jk_module 추가
    LoadModule jk_module modules/mod_jk-apache-2.0.58.so
    
    # workers.properties 파일 추가
    JkWorkersFile "C:\Program Files\Apache Group\Apache2\conf\workers.properties"
    
    # virtualhost 설정 추가 
    include "conf/vhosts/*.conf"
    

    2.4 가상 호스트 설정

    • %APACHE_HOME%/conf/vhosts/dev.conf 파일을 생성 한 후 아래의 내용을 추가한다.
    dev.conf
    <VirtualHost 127.0.0.1:80>
      ServerName dev.oracleclub.com
      ServerAlias oracleclub.com
      ServerAlias web.oracleclub.com
    
      DocumentRoot C:\struts2\webapp
        
      ErrorLog logs/dev.oracleclub.com-error.log
      CustomLog logs/dev.oracleclub.com-access.log common
    
      JkMount /*.ok  dev
    </VirtualHost>
    
    • mod_jk의 JkMount 지시자를 사용해 지정된 URL 들을 Tomcat으로 할당할 수 있다.
    • JkMount /*.ok dev URI에 .ok로 오는 요청은 workers.properties에 설정된 dev worker로 보낸다.

    2.5 톰캣 server.xml 파일 수정

    • workers.properties의 AJP/1.3 포트와 톰캣 Connector의 포트를 일치 시킨다.
    server.xml
     
     <?xml version="1.0" encoding="UTF-8"?>
    
    <Server port="20005" shutdown="SHUTDOWN">
      <Service name="Tomcat-Apache-mod_jk">
    
        <Connector port="7005"
                   enableLookups="false" redirectPort="10445" 
                   protocol="AJP/1.3" URIEncoding="euc-kr"  />
    
        <Engine name="webhosting" defaultHost="localhost">
    
          <Host name="dev.oracleclub.com" appBase="oracleclub"
           unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
           
          <Alias>oracleclub.com</Alias>
          <Alias>web.oracleclub.com</Alias>
    
           <Context path="" docBase="C:/struts2/webapp" reloadable="true" workDir="C:/struts2/webapp/WEB-INF/work" />
    
          </Host>
    
        </Engine>
    
      </Service>
    </Server>
    

    2.6 hosts 파일 변경

    • 127.0.0.1 dev.oracleclub.com

    3. 가상 호스트 예제

    하나의 IP로 여러개의 가상 호스트를 설정하는 방법을 알아보도록 하자.

    3.1 이름 기반 가상 호스트 설정

    • Apache는 HTTP의 Host 헤더를 이용하여 여러개의 호스트명을 하나의 IP 주소로 사용하는 것을 가능하게 한다.
    • httpd.conf파일에 NameVirtualHost 를 설정하여 이름기반의 가상 호스트를 사용 할 수 있다.(꼭 설정해야 함)
    • 아래 코드는 이름기반 가상 호스트 설정 예제이다.
    httpd.conf
    # 127.0.0.1에 연결되는 모든 요청을 Host 헤더의 내용을 기준으로 처리한다. 
    NameVirtualHost 127.0.0.1:80
    Listen 80
    
    <VirtualHost 127.0.0.1:80>
      ServerName dev.oracleclub.com
      DocumentRoot C:\struts2\webapp
    </VirtualHost>
    
    <VirtualHost 127.0.0.1:80>
      ServerName local.oracleclub.com
      DocumentRoot C:\oracleclub\webapp
    </VirtualHost>
    
    <VirtualHost 127.0.0.1:80>
      ServerName wiki.oracleclub.com
      DocumentRoot D:\confluence-2.7-std\confluence
    </VirtualHost>
    
    

    3.2 IP 기반 가상 호스트 설정

    • 각 호스트별로 하나의 IP 주소를 할당하는 방법.
    httpd.conf
     
     Listen 192.168.1.1:80
     Listen 192.168.1.2:80
    
    <VirtualHost 192.168.1.1:80>
      DocumentRoot C:\struts2\webapp
    </VirtualHost>
    
    <VirtualHost 192.168.1.2:80>
      DocumentRoot C:\oracleclub\webapp
    </VirtualHost> 
    

    4. Rewrite Rule

    • mod_rewrite module은 주소 재작성 패턴을 URL에 적용한다.
    • 패턴은 정규 표현식(regular expression)을 의미하며 이 정규식에 match가 되는 pattern을 요청한 url에서 출력 하게 된다.

    4.1 mod_rewrite 설치

    • apache 설치시 Configure 실행시에 --enable-rewrite 옵션을 추가한다.
    • apache 설치 이후 추가 설치시
      • 아파치 압축 푼 디렉토리로 이동 : cd /usr/local/httpd-2.0.63/modules/mappers
      • apxs를 이용해 새 모듈 추가 : /usr/local/apache2/bin/apxs -aic mod_rewrite.c

    4.2 Rewrite 모듈 지시자

    RewriteEngine

    • Rewriteing 엔진을 사용할지 여부를 설정
    • 디폴트 설정은 Off, RewriteEngine On 으로 설정하지 않는 이상 Rewritng 엔진을 사용할 수 없다.
    • 설정문법 : RewriteEngine On|Off

    RewriteRule

    • Rewrite 모듈의 실질적인 Rewrite 규칙들을 적용 한다.
    • Input URL을 Return URL로 변경하기 위한 규칙들을 설정 한다.
    • 아래는 RewriteRule을 이용해 퍼머링크를 만드는 예제다.
     <IfModule mod_rewrite.c>  
      RewriteEngine On
      RewriteRule ^/$ /main.ok [R]  
      RewriteRule ^/community/([0-9]+)$ /articlelist.ok?article.communityId=$1 [PT]
      RewriteRule ^/article/([0-9]+)$  /articleview.ok?article.articleId=$1 [PT]
    </IfModule>
    
    
    • RewriteRule 플래그
      • F(forbidden) : 요청하는 페이지를 403 에러로 redirect 시킵니다.
      • G(gone) : 요청하는 페이지를 410 에러로 redirect 시킵니다.
      • R(redirect) : Return URL로 redirect 한다.
      • PT(passthrough) : Input URL을 그대로 유지하며 Return URL을 실행한다.
      • http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html

    RewriteCond

    참고4. 정규표현식 기초
    . : 다수의 한문자
    ? : 0개 이상의 한문자
    * : 0개 이상의 문자 또는 문자열
    + : 1개 이상의 문자 또는 문자열
    ^ : 문자열의 첫문(열)을 지정합니다.
    $ : 문자열의 끝 문자(열)을 지정합니다.
    (역슬래쉬) : 정규표현식에서 특별한 의미로 사용되는 문자의 특수기능을 제거합니다.(예:(, ), [, ] . 등)
    {n} : 정확히 n번 반복
    {n,} : n번 이상 반복
    {n,m} : n 이상 m 이하 반복
    [chars] : 문자들의 범위 또는 표현할 수 있는 문자들을 설정합니다.
    예) [a-z] : a 부터 z 까지의 소문자, [tT] : 소문자 t 또는 대문자 T
    
     정규표현식 단축표현들
    [:alpha:] : 알파벳. [a-zA-Z] 와 같은 표현
    [:alnum:] : 알파벳과 숫자. [a-zA-Z0-9] 와 같은 표현
    [:digit:] : 숫자 [0-9] 와 같은 표현
    [:upper:] : 대문자. [A-Z] 와 같은 표현
    

    5. 데모 및 실습

    문서에 대하여


    # 이 문서는 오라클클럽에서 작성하였습니다.
    # 이 문서를 다른 블로그나 홈페이지에 게재하실 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
    # 출처 : http://wiki.oracleclub.com/pages/viewpage.action?pageId=1507883&
    posted by 좋은느낌/원철
    2009. 6. 29. 16:20 개발/JSP/Servlet

     1  Apache 2.0
    http://httpd.apache.org 에서 httpd-2.0.49.tar.gz 받아서 푼다.


    $ tar xvfz httpd-2.0.49.tar.gz


    INSTALL 파일을 참고하여 apache를 설치하고 실행한다.


    $ ./configure --prefix=PREFIX $ make $ make install $ PREFIX/bin/apachectl start
    여기서 PREFIX는 apache가 설치될 디렉토리이다. --prefix=PREFIX를 생략하면 /usr/local/apache2에 설치된다.
    2003년경의 모 아티클에는 아파치 인스톨시에 configure --prefix=/usr/local/apache --enable-module=so 와 같이
    모듈 옵션을 주라고 하는데 최근 문서로 확인 해 봐야 할 듯.


    이하의 설명에서 PREFIX는 아파치가 설치된 디렉토리를 뜻한다.

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

    브라우저를 열고 http://127.0.0.1/을 입력하였을 때, apache web server가 설치되었다는 메시지가 나오면 성공.


    아파치 서버를 끝내려면


    $ PREFIX/bin/apachectl stop
    2 J2SE
    http://java.sun.com에서 J2SE 1.4.2 를 받아 설치한다. SDK를 받아야 된다. JRE만 받으면 안 됨.


    확장자가 bin인데 실행권한을 주고 실행시키면 license에 동의하는지를 묻고 이에 대하여 y를 눌러 대답하면 설치가 된다.


    아래와 같이 심볼릭 링크를 한다.


    $ ln -s /usr/java/j2sdk1.4.2_04 /usr/local/java

    /etc/profile.d/java.sh를 아래의 내용으로 만들어 넣는다. (실행 퍼미션으로 넣어야 한다.)


    JAVA_HOME=/usr/local/java export JAVA_HOME

    3  Tomcat 5
    http://jakarta.apache.org에서 jakarta-tomcat-5.0.19.tar.gz를 받아서 푼다. (5.5.x 버전도 잘 동작함을 확인 함.)

    $ tar xvfz jakarta-tomcat-5.0.19.tar.gz

    RUNNING.txt 파일을 참고하여 tomcat을 실행시킨다.

    $ $CATALINA_HOME/bin/startup.sh여기서 $CATALINA_HOME은 tomcat이 설치된 디렉토리이다.


    아래와 같이 심볼릭 링크를 한다.

    $ ln -s /usr/jakarta-tomcat-5.0.19 /usr/local/tomcat

    브라우저를 열고 http://127.0.0.1:8080/을 입력하였을 때, tomcat이 설치되었다는 메시지가 나오면 성공. tomcat을 끝내려면

    $ $CATALINA_HOME/bin/shutdown.sh

    4  mod_jk2.so


    http://jakarta.apache.org 에서 jakarta-tomcat-connectors-jk2-src-current.tar.gz를 받아서 푼다.


    jk/native2/INSTALL.txt를 참고하여 mod_jk2.so를 만든다.

    $ ./configure --with-apxs2=PREFIX/bin/apxs $ make $ cd ../build/jk2/apache2 $ PREFIX/bin/apxs -n jk2 -i mod_jk2.so* PREFIX는 apache가 설치된 경로로 대개 /usr/local/apache 혹은 /usr/local/apache2 에 위치한다.

     

    5  httpd.conf
    위에서 만든 mod_jk2.so를 PREFIX/modules/에 복사한 다음, PREFIX/conf/httpd.conf 에서

    #LoadModule foo_module modules/mod_foo.so
     와 같은 형식으로 되어 있는 곳을 찾아 그 아래에

    LoadModule jk2_module modules/mod_jk2.so
    를 추가한다.


    DirectoryIndex를 찾아 그 줄에 index.jsp를 추가한다.

    Alias /icons/ "/usr/local/apache2/icons/"와 같은 형식의 행을 찾아 그 아래에

    Alias /jsp-examples/ "/usr/local/tomcat/webapps/jsp-examples/" Alias /servlets-examples/ "/usr/local/tomcat/webapps/servlets-examples/"
    를 추가한다.


    DocumentRoot 행을 찾아

    DocumentRoot "/www"
    로 바꾸고 저장하고 아래와 같이 심볼릭 링크를 한다.

    $ ln -s /usr/jakarta-tomcat-5.0.19/webapps/ROOT /www
    * 이렇게 아파치의 DocumentRoot 와 톰캣의 DocRoot를 바로 연결 하기보단 톰캣의 가상호스트 설정으로 돌리는 쪽이 훨씬
      나은 방법이라고 생각 함.
    *위 방법대로 설정 시 ContextRoot가 / 가 되는 것은 위에 설정한 톰캣 ROOT밖에 없다.
    *위 설명에서와 같이 아파치의 DocumentRoot 와 톰캣의 DocRoot 심볼릭 링크로 걸지 않고 톰캣의 Host설정만으로도 충분함.


    6 workers2.properties
    PREFIX/conf/에 workers2.properties를 아래의 내용으로 만들어 저장한다. ( jk/native2/INSTALL.txt 참고 )
    [channel.socket:localhost:8009] port=8009 host=127.0.0.1  [ajp13:localhost:8009] channel=channel.socket:localhost:8009  [uri:/*.jsp] worker=ajp13:localhost:8009  [uri:/servlets-examples/*] worker=ajp13:localhost:8009
    * 위 5번 httpd.conf 수정시 제 방식대로(아파치 DocumentRoot와 톰캣의 ROOT를 심볼릭으로 엮지않는 방법) 톰캣의 HOST를
    설정하는 방식을 따른다면 아래의 내용을 추가하여 모든 uri에 대해 톰켓이 알 수 있도록 다음을 추가 합니다.

    [uri:/*] worker=ajp13:localhost:8009
     

     

    7  Virtual Host
    # Virtual Host의 경우 아래 URI에서 호스트 명을 넣어야 하고요. server.xml에서 host명을 넣으시면 됩니다.
    [uri:www.kldp.net/*.jsp] worker=ajp13:localhost:8009  [uri:www.kldp.net/servlets-examples/*] worker=ajp13:localhost:8009  [uri:www.kldp.org/*] worker=ajp13:localhost:8009

    8  LB(로드 발란서)
    -- :> 내일 올릴게요.


    9  apache 실행
    $ PREFIX/bin/apachectl start

    10  tomcat 실행
    $ $CATALINA_HOME/bin/startup.sh  또는  $ $CATALINA_HOME/bin/catalina.sh start

    11  확인
    브라우저에서 http://127.0.0.1을 입력하면 톰캣 화면이 나온다. (8080을 입력하지 않은 것을 주목)


    http://127.0.0.1/jsp-examples/을 입력하여 그곳에 있는 jsp 예제를 클릭하여 실행결과가 나타나면 jsp 성공.


    http://127.0.0.1/servlets-examples/를 입력하여 그곳에 있는 servlet 예제를 클릭하여 실행결과가 나타나면 servlet 성공.
    2008/03/07 01:26 2008/03/07 01:26 
     

    posted by 좋은느낌/원철
    2009. 6. 25. 14:54 시사/요즘 세상은



    쏘울 진짜 멋진 걸
    posted by 좋은느낌/원철
    2009. 6. 16. 10:43 개발/Linux 계열
    Apache HTTS Setup
    Apache web server에서 SSL(HTTPS)을 사용하기 위해서는 mod_ssl 이라는  
    module을 사용해야합니다.
    mod_ssl은 실제로 OpenSSL을 이용해서 SSL 서비스를 제공합니다.
    따라서, OpenSSL이 설치가 안된 경우 OpenSSL을 먼저 설치하고
    Apache에서 mol_ssl을 설치합니다.
     
    1. OpenSSL 설치
    OpenSSL은 아래 site에서 최신 버전을 download받아서 설치하시면  
    됩니다. 설치하는데 별 문제 없을 거라고 봅니다.
     
        http://www.openssl.org/
     
    2. mod_ssl을 가진 apache 설치하기
    예전 apache에서는 mod_ssl을 따로 받아서 같이 설치했는데,  
    httpd 2.0 이상 version에서는 mod_ssl이 포함되어있기 때문에,
    SSL을 사용할 경우, 'configure'실행시 다음과 같이 추가해주면 됩니다.
    아주 간단하죠..^^
     
    > ./configure --enable-ssl --with-ssl
    > make  
    > make install
     
    3. SSL setting하기
    SSL setting하는 것도 아주 간단한데요. 크게 두가지입니다.
    ssl.conf 파일에 보호하고자 하는 위치를 지정해주고,
    SSL에서 사용할 private key와 public key만 만들어주면 끝납니다.
     
    3.1 ssl.conf setting하기
    SSL 관련 setting은 ./conf/ssl.conf에서 하는데,
    이 파일은 ./conf/httpd.conf에서 include합니다.
     
    ssl.conf 안에 있는 밑에 다음과 같이 SSL인증이  
    필요한 부분을 선언하고, 어떻게 인증을 받을 건지 지정만 해주면 됩니다.  
    아주 간단하죠..^^
     
    ex)
    <Directory "/usr/local/apache2/htdocs/Frontier">
            SSLRequireSSL
            SSLOptions +StdEnvVars
            AuthType        basic
            AuthName        "Human Genome Frontier Protected Area"
            AuthUserFile    conf/protected.passwd
            Require         valid-user
    </Directory>
     
    apache에서 .htaccess 파일로 인증해보신 분들은
    SSL들어간 것만 빼면 똑같다는 느낌을 받지요.
     
    3.2 private, public key 만들기
    key를 만드는 것도 openssl 프로그램이 알아서 해주기 때문에  
    간단합니다.
    먼저 key의 위치는 public key의 경우 일반적으로 ./conf/server.crt에
    private key의 경우 ./conf/server.key 밑에 놓습니다.
    directory가 없는 경우 만들어야겠죠..^^
     
    OpenSSL을 설치했으면, openssl 프로그램이 만들어지는데
    이 프로그램을 이용해 담과 같이 만듭니다.
     
    public key생성:
        > openssl genrsa -out server.key 1024
     
        #키를 사용할때 password를 주고 싶으면 다음과 같이  
        '-des3' 옵션을 추가합니다.
        > openssl genrsa -des3 -out ./conf/ssl.key/server.key 1024
     
    private key 생성:
        > openssl req -new -x509 -days 365
            -key ./conf/ssl.key/server.key  -out ./conf/ssl.crt/server.crt
     
    이 key들이 들어있는 위치는 ssl.conf 파일의 밑에
    다음과 같이 지정되어 있답니다. 머 위치가 맘에 안들면 다른 곳으로
    지정할 수 있겠죠!
     
    SSLCertificateFile /usr/local/apache2/conf/ssl.crt/server.crt
    SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/server.key
     
    이제 모든 setting이 다 끝났습니다.
     
    마지막으로 apache 시작만 하면 된는데요.
    ./bin directory에서 다음과 같이 실행시키면 됩니다.
     
        > ./bin/apachectl startssl
    posted by 좋은느낌/원철
    2009. 6. 16. 09:07 개발/Linux 계열
    설치버전

    RedHat Linux 기반의 Sulinux 1.5 (http://www.sulinux.net/)
    Apache 2.2.4 (http://www.apache.org/ - httpd)
    Mysql 5.0.37 (http://www.mysql.com/)
    Tomcat 6.0.10 (http://www.apache.org/ - tomcat )
    JDK 6.0 (http://java.sun.com/)
    Apache-Tomcat Connector (Jk Connector 1.2.21) (http://www.apache.org/ - tomcat - connector)

    모두  linux 용, Non-RPM 버전으로 받아서 설치하였음.
    받은 모든 파일들은 /usr/local/ 로 ftp 전송등으로 복사.

    Mysql

    SHELL> tar xzvf mysql파일명.확장자

    SHELL> ln -s /usr/local/mysql디렉토리명  mysql
               
                mysql디렉토리에 대한 링크를 만듬. (윈도우의 바로가기 같은 개념--;)

    SHELL> cd mysql

    SHELL> adduser -M mysql

    SHELL> chown -R root /usr/local/mysql

    SHELL> chown -R mysql /usr/local/mysql/data

    SHELL> ./configure

    자동으로 실행까지 한다.

    SHELL> cp /usr/local/mysql/support-files/my-medium.cnf   /etc/my.cnf

    SHELL> ps  
                (mysqld_safe 가 있는지 확인.)

    SHELL> cd bin  (/usr/local/mysql/bin)

    SHELL> ./mysqladmin -u root password 'mysql root계정 비밀번호'

    SHELL> ./mysql -u root -p
                (비밀번호를 입력하고 접속되는지 확인)

    mysql> show databases;
                (information_schema , mysql , test DB가 있는지 확인 - 절대삭제하지 말것)

    mysql> quit  (빠져나오기)
     
    apache

    SHELL> tar xzvf apache파일명.확장자

    SHELL> cd 풀린apache디렉토리

    SHELL> ./configure --prefix=/usr/local/apache --enable-so --enable-modules=all
                                 --enable-mods-shared=most

    SHELL> make && make install

    SHELL> cd /usr/local/apache/

    SHELL> vi conf/httpd.conf

                httpd.conf 설정내용중 ServerName 부분을 찾아서.
                주석처리되어있는 #를 삭제하여 활성화시키고, 도메인네임이나 IP Address를 적는다.
                예>ServerName www.도메인이름
                     ServerName 2xx.xx.xx.xx

                저장하고 vi편집기 빠져나오기.

    SHELL> cd bin
    SHELL>./apachectl start   아파치 실행.

    웹브라우저를 실행시켜서 설정한 도메인네임이나 IP주소를 쳐서 접속을 한다.

    "It works!!"

    라는 메세지가 뜨면 아파치 설치 성공.

    JDK

    다운로드 받은 JDK파일은 .bin

    SHELL> chmod o+x  jdk파일명
                (실행할 수 있게 권한을 준다)

    SHELL> ./jdk파일명 (엔터)
              
                (아니면 sh jdk파일명)

    Do you agree to the above license terms?

    동의한다고 한다. (yes)

    착하게 알아서 다 설치한다.

    SHELL> ln -s /usr/local/jdk디렉토리명  jdk

    Tomcat

    SHELL> tar xzvf 톰켓파일이름

    SHELL> ln -s /usr/local/tomcat디렉토리이름  tomcat

    환경변수 설정

    SHELL> vi /etc/profile

    profile문서 제일 끝에 아래를 추가 한다.

    JAVA_HOME=/usr/local/jdk
    CATALINA_HOME=/usr/local/tomcat
    APACHE_HOME=/usr/local/apache
    export JAVA_HOME CATALINA_HOME APACHE_HOME

    PATH=$JAVA_HOME/bin:$CATALINA_HOME/bin:$APACHE_HOME/bin:$PATH
    export PATH=$PATH:/usr/local/bin:/usr/local/tomcat/bin
    export CLASSPATH=$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib/servlet-api.jar:$CATALINA_HOME/lib/jsp-api.jar

    저장하고 나가기

    SHELL> source /etc/profile

    SHELL> catalina start
                웹브라우저에서 IPAddress 나 도메인 :8080 으로 접속한다.
                왠 고양이 한마리 나오면 톰켓 설치 완료.

    Tomcat Connector

    SHELL> cd connector디렉토리

    SHELL> cd native

    SHELL> ./buildconf.sh

    SHELL> ./configure --with-apxs=/usr/local/apache/bin/apxs
    SHELL> make && make install

    SHELL> ls /usr/local/apache/modules
                (mod_jk.so 파일이 생성되었는지 확인)

    SHELL> cd /usr/local/apache/conf

    SHELL> vi workers.properties

                아래 내용 작성
               
                workers.tomcat_home=/usr/local/tomcat
                workers.java_home=/usr/java/jdk1.5.0_05
                ps=/
                worker.list=ajp13

                worker.default.port=8009
                worker.default.host=localhost
                worker.default.type=ajp13
                worker.default.lbfactor=1

                저장하고 나가기.

    SHELL> vi httpd.conf

                 LoadModule 부분을 찾는다.
                 LoadModule jk_module modules/mod_jk.so 를 추가한다.
                 
                 DocumentRoot "usr/local/apache2/htdocs" 부분을 찾아서
                 DocumentRoot "/usr/local/tomcat/webapps/ROOT"  로 바꾼다.
                 
                 DirectoryIndex 부분을 찾아서
                 index.jsp 를 추가한다.

                 아래 Mod_Jk Setting 부분
                 문서 제일 밑에 추가

                 # Mod_jk settings -----------------------------------------------------
                 #
                    JkWorkersFile conf/workers.properties
                    JkLogFile logs/mod_jk.log
                    JkLogLevel debug
                    JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
                    JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
                    JkRequestLogFormat "%w %V %T"

                    JkMount /examples/jsp/* ajp13
                    JkMount /examples/servlets/* ajp13
                    JkMount /*.jsp ajp13
                    JkMount /servlet/* ajp13
                 #---------------------------------------------------------------------

                 저장하고 나가기.

    SHELL> apachectl start
    SHELL> catalina.sh start

    웹브라우저에서 http://자기아이피 or http://도메인주소 로 접속

    :8080을 붙이지 않고 고양이가 나와야하며
    사이드메뉴에 JSP example 과 Servlet example 를 클릭하여
    실행이 모두 되면 연동까지 성공!

    이상있으면 댓글.
    posted by 좋은느낌/원철
    2009. 6. 12. 16:00 시사/요즘 세상은

    통계청 자료에 의하면 작년 '도시 근로자 가구'의 소득 지니계수는 0.325로서 1990년 관련 통계를 낸 이후 가장 높고, 올해 1/4분기의 5분위배수 또한 8.68로서 사상 최대로 높아졌다. 또한 경제가 지난 외환위기 수준으로 악화될 경우 2006년 전체 인구의 10.6%에 달했던 빈곤층은 20.9%로 2배 가까이 급증할 것으로 추정된다고 한국보건사회연구원은 보고했다. 빈부격차의 확대는 '위험사회로의 진입'을 의미한다. 이렇듯 빈부격차가 커질 때 정부는 사회통합의 위기를 미연에 방지하기 위하여 당연히 강력한 소득재분배 정책을 내놓아야 한다.

    상류층의 요금은 깎고 나머지를 희생시키는 전기요금체계 개편

    그러나 지식경제부와 한국전력은 6월 7일 전기를 많이 쓰는 고소득층가구의 요금은 내리고, 적게 쓰는 저소득층가구의 전기료는 크게 올리는 방안을 제시하는 소득역분배 정책을 발표했다.

    현행 전력요금 체계에서 누진제는 주택용 요금에만 적용되며, 사용량에 따라 모두 6단계로 나뉘어 있다. 저압 주택용 요금은 사용량 100kwh까지는 kwh당 55.10원이고, 101~200kwh는 113.80원으로 두 배 이상 높아진다. 최고 구간인 500kwh 초과는 kwh당 643.90원으로 최저 구간의 11.7배다.

    현재 전기를 월 100kwh 이하로 사용하는 최저 구간에 적용되는 요금은 원가의 49% 수준이라며, 지식경제부와 한전은 현재의 요금체계가 지나치게 저소득층에게 저렴한 요금을 적용하여 요금 격차가 너무 큰 문제점이 있다고 했다. 그래서 최저구간의 경우에 원가 그대로 전력 요금을 받고 전체 가구의 79%에 이르는 월 300kwh(전기요금 3만9960원) 이하를 쓰는 구간의 요금을 올리겠다고 한다. 따라서 상위 20%를 제외한 나머지 가구의 전기요금이 크게 오를 전망이다.
    ▲ 한국전력 홈페이지에는 사랑을 나눈다는 내용이 담긴 이미지가 게재돼 있다. 누구에게 사랑을 나누는지 물어야 할 때이다. ⓒ한국전력

    환경과 에너지 절약을 위해서도 누진체계를 손상시키지 말아야

    전기는 공기업의 돈벌이 대상이 아니고, 다른 시장재화와 같이 수익자 부담원칙에 의하여 소비자에게 돈을 받고 팔고, 많이 사는 사람에게 더 깎아 줌으로써 매상을 더 올려서 이득을 얻는 시장재화는 더더욱 아니다. 전기요금체계에 높은 누진율을 적용하는 것은에너지 과소비를 막기 위한 목적이 있다. 현재 에너지 고갈은 심각한 위기상태이다. 에너지 절약을 위해서도 전기요금 누진체계는 손상시키지 말아야 한다.

    경기부양을 위해서도 전기요금체계의 누진성을 훼손하지 말아야

    지난 1분기의 가계평균소득은 하위 20% 계층이 작년 동기보다 5.1%나 크게 감소한 반면에 상위 20% 계층은 경기불황에도 불구하고 1.1% 늘어났다. 그런데 이 요금체계 개편안은 소득이 큰 폭으로 줄어든 저소득층의 요금을 2배 이상 인상하고, 한 달에 300kwh를 초과해 쓰는 상위 21% 고소득층의 요금을 상당 폭 줄여 주는 정책으로서 사실상 가난한 자의 돈을 빼앗아서 부자에게 주는 소득역진적 정책이다.

    또한 정부는 이와 함께 산업용과 농업용 전력요금을 올리는 방안도 함께 추진하고 있다. 이는 부자들에게 돈을 더 보태 주기 위하여 경기를 희생시키겠다는 말이다.

    양극화 사회로 치닫는 현대사회에 있어서 정부의 역할은 시장에서 생긴 불평등을 소득재분배정책을 통하여 완화시킴으로써 사회를 안정시키는 것이다. 그 중에서 가장 대표적인 소득재분배정책은 생명유지에 필수적인 공공재적 성격의 재화나 서비스를 구매력이 낮은 가난한 사람들에게 무상 혹은 아주 저렴한 가격으로 공급함으로써 저소득층의 구매력을 보전해 주어야 한다.

    그러나 정부와 대표적인 공기업인 한전은 빈부격차가 사상최대이고, 빈민이 무더기로 쏟아져 나오고 있는 불황기에 생존의 벼랑 끝에서 SOS 신호를 보내는 상황에서 오히려 소득역진적인 방향으로 요금체계를 개편하겠다고 한다. 정부와 공기업이 할 일은 저소득층의 실질구매력을 높여 생존권 보장수준을 높이고, 한계선상에 있는 중소기업과 자영업의 도산을 막는 일이다.

    가장 신자유주의적인 국가라고 비난받고 있는 미국의 연방준비제도이사회 의장 버냉키도 "저소득층 밀집지역에 헬리콥터로 돈을 뿌려서라도 내수경기를 살려 내어야 한다"고 역설하지 않았는가? 더구나 저소득층은 돈이 생기는 족족 소비하여 내수경기를 부양시키는데 도움을 주지만, 고소득층은 저축률이 높고, 외국제품을 주로 구매하고 외국여행도 자주하기 때문에 실질소득 증가로 인한 경기부양 효과가 저소득층에 비하여 현저하게 떨어진다는 것은 입증된 사실이다. 불황탈출을 위해서도 현행 전기요금체계는 훼손하지 말아야 한다.

    전기요금 체계개편은 생존권 침해

    전기요금 연체로 단전된 후 촛불을 켜놓고 자다가 죽은 장애인과 여중생이 있었다. 불황으로 소득이 없어 절망에 빠진 사람들이 양산되고 있는 현 시점에서 세금이나 다를 바 없는 전기요금을 인상한다면 요금을 부담할 돈이 없어서 촛불을 켜고 자다가 불이나 죽는 비극은 더 발생할 것이다. 한전과 짝짝꿍이 되어 정부가 부자들에게는 있어도 좋고 없어도 좋은 푼돈에 불과한 전기요금을 깎아주기 위하여 가난한 사람들에게는 생명줄인 전기를 박탈하겠다고 나서는 것은 가난한 사람들의 사회적 권리마저 짓밟고 생존권을 침해하는 처사이다.

    2MB, 고소영, 강부자 정부 관계자들이 자신들이 속한 집단의 이익만을 보전하고 늘리는데 눈이 멀어, 대한민국이 '최저생계의 사회적 보장'을 약속한 법이 시행되고 있는 국가라는 사실을 망각하고 있다. 가난한 사람들에게 요금을 더 받는 대신에 부자의 요금을 깎아주겠다고 하는 너무한 그악스러운 소탐은 자칫 사회통합의 위기를 초래할 수 있다. 아무리 가난한 사람이더라도 적어도 인간의 존엄성은 유지하고 살 수 있도록 공공재 요금이 저렴하거나 무상으로 공급되어야 사회적 권리가 보장되는 나라이다. 생존권이라는 기본적인 인권에 대한 의식이 있는 정부라면 전기요금의 누진체계를 훼손시키지 말아야 한다.

    (이 글은 "전기세도 부자들을 위한 감세 정책"라는 제목으로 주간인권신문 <인권오름>에도 실렸습니다. <인권오름>기사들은 정보공유라이선스를 채택하고 있습니다. 정보공유라이선스에 대해 알려면, http://www.freeuse.or.kr 을 찾아가면 됩니다.)

    /류정순 빈곤문제연구소 소장 메일보내기 필자의 다른 기사


    posted by 좋은느낌/원철
    2009. 6. 11. 17:55 개발/Linux 계열

       아파치2 메뉴얼
       아파치 데몬실행파일 : httpd
       웹로그파일(access_log)에서 유일 IP카운트방법
       Apache rewrite Module
       아파치로그 lotate
       아파치로그분석툴(Webalizer, cronolog)
       자주쓰는 아파치 설정사항 정리
       Apache 웹서버 보안관리
    0 0 Jserv 설치
    0 0 아파치-포스트그레스 인증 모듈
    0 0 Apache에서 Tomcat 사용하기 (UNIX/Linux)
    0 0 apache 사용자 인증
    0 0 가상 호스트 설정하기(name base)
    0 0 httpd.conf 설정하기
    0 0 아파치 모니터링(server-status)에 관해 자세히 알고싶다.
    0 0 아파치 웹 서버구축 및 운용
    0 0 SSI사용법과 환경변수사용법
    0 0 사용자인증기법(특정디렉토리의 암호걸기)
    0 0 윈도우에서의 아파치 디렉토리별 사용자인증법
    0 0 Apache + PHP + Mysql + GD + Freetype 동시설치
    0 0 아파치를 활용한 가상호스트 설정법
    0 0 아파치 이야기

    00000Apache와 PHP, Mysql 함께설치하기
    00000Apache와 PHP 설치하기(최신버전)  -Apache 1.3.20-
    00000PHP설치도움말 보기

    0 0 리눅스와 함께 기본적으로 설치되는 아파치 둘러보기
    0 0 리눅스의 RPM으로 아파치 설치하기
    0 0 일반적인 방법으로 아파치 설치하기
    0 0 최신버전 아파치( apache 1.3.14) 설치방법
    0 0 아파치 환경파일(httpd.conf) 완벽가이드
    0 0 아파치웹서버 동작상태 모니터링
    0 0 개인도메인로딩시 틸드(~)기호없이 사용하는 방법
    0 0 아파치의 숨은 기법#1
    0 0 httpd에 대한 몇가지 옵션
    posted by 좋은느낌/원철
    2009. 6. 11. 17:47 개발/Linux 계열

    접속자가 많은 사이트에서는 아파치 로그를 관리하는 것도 만만치 않다.
    Linux, solaris 등에서 로그 파일 크기가 2GB가 넘어서 골치아픈 경우도 발생한다.
    또한 로그 파일이 크면 클수록 서버에 필요없는 무리를 주는 것도 사실이다.


    1) Apache 자체에서 제공하는 rotatelogs를 이용하여 로그를 시간과 용량에 따라
      분리 저장하는 방법
    2) 보다 개선된 형태의 cronolog로 로그를 rotation하는 방법
    3) images 로그와 윈도 OS 관련된 warm 로그를 별도로 저장하는 방법을 소개한다.


    ------------------------------------------------------------------------
    1) weblog를 자동 rotation하기 

    로그를 관리하기 위해 logrotate 를 사용하는 경우가 많지만, 이는 서비스를 일시 중단해야
    한다. 그러나 apache에서 제공하는 rotatelogs는 웹서버 동작중에 (1) 특정시간간격이나
    (2) 특정 크기 단위로 로그를 저장한다.

    예) CustomLog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/access.log 86400" common

    위는 웹서버를 실행한지 86400초(24시간)간격으로 로그파일을 나눠서 저장한다.
    로그 파일명은 'access.log.????' 형식으로 ???? 는 로그파일 생성시의 timestamp 이다.

    즉, access.log.1060189068, access.log.1060120280 형태로 파일명이 만들어진다.
    이런형태의 파일명이라면 이해하기 힘들 것이다. 좀더 쉽게 파일명을 만들어보자.

    CustomLog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/access_log.%m%d-%H%M%S 86400" common
    또는
    CustomLog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/access_log.%m%d 86400" common

    이제는 'access_log.월일-시분초' 또는 'access_log.월일' 형태로 생성될 것이다.

    CustomLog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/access_log.%m%d-%H%M%S 100M" common

    100M 단위로 로그를 저장할 수도 있다.

    2) cronolog 툴로 개선된 형태로 log rotation하기

    cronolog는 년월일에 따라 다른 디렉토리에 로그를 남길 수도 있다.
    또한 webalizer 같은 웹로그 분석툴은 access_log 와 같이 지정한 파일을 분석하는데,
    access_log.년월일' 처럼 로그 파일이 매번 바뀐다면 로그파일 지정하는게 쉽지않다.
    cronolog 는 심볼릭 링크를 통해 이를 쉽게 해결해주고 있다.

    http://www.cronolog.org/ 에서 cronolog-x.y.z.tar.gz 을 받아

    ./configure
    make
    make install

    을 한다.

    사용은 rotatelogs와 비슷하다.

     (1) 년월 단위로 로테이션한다.

     CustomLog "|/usr/local/sbin/cronolog /usr/local/apache/logs/access_log.%Y%m" common

     년월로 나눠서 'access_log.년월'형식으로 저장을 한다.

     /usr/local/apache/logs/access_log.200307
     /usr/local/apache/logs/access_log.200308

     (2) 다음과 같이 년월에 따라 다른 디렉토리에 로그를 나눌 수도 있다.

     CustomLog "|/usr/local/sbin/cronolog /usr/local/apache/logs/%Y/%m/access_log.%Y%m%d" common

     /usr/local/apache/logs/2003/07/access_log.20030701
     /usr/local/apache/logs/2003/07/access_log.20030702
     /usr/local/apache/logs/2003/07/access_log.20030703
     ...
     /usr/local/apache/logs/2003/08/access_log.20030801

     (3) 로그파일을 access_log로 심볼릭 링크해보자

     CustomLog "|/usr/local/sbin/cronolog --symlink=/usr/local/apache/logs/access_log
     /usr/local/apache/logs/access_log.%Y%m" common

     /usr/local/apache/logs/access_log -> /usr/local/apache/logs/access_log.200308
     /usr/local/apache/logs/access_log.200307
     /usr/local/apache/logs/access_log.200308

    3) images 로그와 warm 로그는 별도로 저장

    웹서버 튜닝 중에 이미지 파일만 별도의 웹서버로 분리하는 방법이 있다.
    이 방법은 Request와 I/O 출력, 트래픽을 분산하는 효과가 있을 것이다.

    이런 튜닝 방법과는 다르지만 images 로그만 별개로 파일로 저장하는 방법을 소개한다.
    다음은 이미지 파일은 images_log에, Codered나 Nimda 등의 warm은 warm_log 에 저장하는 설정이다.

    ---------------------------------
    SetEnvIf Request_URI "\.gif$"      except=images
    SetEnvIf Request_URI "\.jpe?g$"     except=images
    SetEnvIf Request_URI "\.png$"      except=images
    SetEnvIf Request_URI "^/default\.ida"  except=warm   # Codered
    SetEnvIf Request_URI "/root\.exe?"   except=warm   # Nimda
    SetEnvIf Request_URI "/cmd\.exe?"    except=warm
    SetEnvIf Request_URI "^/NULL\.printer" except=warm   #
    SetEnvIf Request_URI "^/NULL\.IDA?"   except=warm
    SetEnvIf Request_URI "^/NULL\.ida?"   except=warm
    SetEnvIf Request_URI "^/NULL\.idq?"   except=warm

    SetEnvIf except   images  images
    SetEnvIf except   warm   warm

    CustomLog logs/access_log common env=!except
    CustomLog logs/images_log common env=images
    CustomLog logs/warm_log  common env=warm
    ---------------------------------
     
    URI 중에 .gif, .jpg, .jpeg, .png 로 끝나는 것은 except 변수에 images값으로 정의하고,
    /default.ida, /root.exe?, /cmd.exe?, /NULL.printer, /NULL.IDA?, /NULL.ida? /NULL.idq?
    등은 윈도의 IIS의 취약점을 이용한 웜 공격으로 except 변수에 warm 값으로 정의한다.
     
    그리고 또한번 변수 except의 값이 images 인 것은 변수 images로 정의
    변수 except의 값이 images 인 것은 변수 warm으로 정의
     
    CustomLog 설정을 보면
    env=!except 에 의해 image와 warm로그(except변수로 정의)를 제외한(=!) 것만 access_log
    에 저장하게 된다.
    마찬가지로 env=images, env=warm에 따라 각각 images_log, warm_log에 저장하게 된다.
     
     
    cronolog 와 함께 쓸 때는 다음과 같이
     
    CustomLog "|/usr/local/sbin/cronolog --symlink=/usr/local/apache/logs/access_log
    /usr/local/apache/logs/access_log.%Y%m" common env=!except
    CustomLog "|/usr/local/sbin/cronolog /usr/local/apache/logs/images_log.%Y%m" common env=images
    CustomLog "|/usr/local/sbin/cronolog /usr/local/apache/logs/warm_log.%Y%m"  common env=warm
    posted by 좋은느낌/원철