본문 바로가기

etc

apache 서버튜닝

반응형

rotatelogs에 -ㅣ 옵션을 주시면, locale 기반으로 동작되는데, 정확한 시간에 맞춰서 rotate 됩니다.

기존에 아마도 local 정보를 GMT(+9) 로 쓰셨을 것 같습니다. 이 부분이 약간 시간적 오차를 주지 않았나 생각됩니다.

 

CustomLog "| $APACHE_HTTP_HOME/bin/rotatelogs -l $APACHE_HTTP_HOME/logs/accesslog.%Y%m%d 86400" combined env=!nolog-request

 

참고로. 현재 회원관리팀에서도 rotatelogs -l 를 써서 하는 것을 가이드 하고 있습니다.^^

 

김용환 드림

-----Original Message-----
From: "박정일"<sneezer@nhn.com>
To: "김용환"<knight@nhn.com>; "정명진"<mjchong@nhn.com>
Cc: "임수민"<sumin.lim@nhn.com>; "박철우"<zeru17@nhn.com>; "장재완[성능팀]"<jaewan.jang@nhn.com>; "안성화"<ash@nhn.com>; "김도훈"<69nico@nhn.com>; "유치수"<netspider@nhn.com>; "김훈민[산토끼]"<harebox@nhn.com>; "박종빈[생산성혁신]"<jongbhin@nhn.com>; "송창현[승현]"<changsong@nhn.com>; "이상민[WAS고도화TF]"<sangmin.lee@nhn.com>; "김일곤[QA]"<ravenos2@nhn.com>
Sent: 10-11-22(월) 17:09:18
Subject: RE: [네이버me] Apache/Tomcat 설정 확인

<httpd.conf>

1. 삭제하였습니다.

2. 메일개발서버에서 사용하던 것을 그대로 옮겨왔습니다. 알려주신 방법을 택하면 날짜중 중간에 Apache 를 restart 하는 경우 로그 파일이 0:00 분이 아닌 시간에 rotate 될 가능성은 없는지요? 로그 파일은 0:00 분에 rotate 하는 것이 이슈 추적에 편리해서요... 확인 부탁드립니다.

3. 추가해야 할거 같습니다. 정명진과장님 아래의 내용으로 robot.txt 파일 추가 부탁드립니다.

user-agent:*

disallow:/

4. 추가하였습니다.

5. 추가하였습니다.

6. 추가하였습니다.

7. 변경하였습니다.


<vhost>

1. 변경하였습니다.


<server.xml>

1. tomcat instance 갯수 조절할 때 수정하면 될거 같습니다.

2. 기획서 검토하여 변경하도록 하겠습니다.

3. 정명진차장님 검토해 주세요.


감사합니다. ^^



-----------------------------------------------------------------------------
박정일 Park Jungil
메일서비스개발1팀 / 팀장

경기도 성남시 분당구 정자동 178-1 NHN 그린팩토리 17층 463-867

Tel 031-784-2917 Fax 031-784-1100 Mobile 010-7474-6049
Email sneezer@nhn.com Messenger MSN:sneezer@empal.com

 

-----Original Message-----
From: "김용환"<knight@nhn.com>
To: "정명진"<mjchong@nhn.com>
Cc: "임수민"<sumin.lim@nhn.com>; "박철우"<zeru17@nhn.com>; "장재완[성능팀]"<jaewan.jang@nhn.com>; "안성화"<ash@nhn.com>; "김도훈"<69nico@nhn.com>; "유치수"<netspider@nhn.com>; "김훈민[산토끼]"<harebox@nhn.com>; "박종빈[생산성혁신]"<jongbhin@nhn.com>; "박정일"<sneezer@nhn.com>; "송창현[승현]"<changsong@nhn.com>; "이상민[WAS고도화TF]"<sangmin.lee@nhn.com>; "김일곤[QA]"<ravenos2@nhn.com>
Sent: 10-11-22(월) 16:38:58
Subject: [네이버me] Apache/Tomcat 설정 확인

안녕하세요. 웹플랫폼개발랩의 김용환입니다.

 

tweb01.me 서버에서 Apache/Tomcat 설정 확인했습니다.

관련해서 내용을 작성했으니, 피드백주시면 감사하겠습니다.

 

<httpd.conf>

1. 사용하지 않으면, 주석 처리 혹은 삭제해도 될 것 같습니다.
<Directory "/home1/irteam/app/apache-2.2.11/htdocs">
</Directory>
<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>
<FilesMatch "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
</FilesMatch>
<IfModule alias_module>
</IfModule>
<Directory "/home1/irteam/app/apache-2.2.11/cgi-bin">
</Directory>
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>

2. apache http 로그 정리 문의

root의 crontab으로 정리하고 계신데요.

궁금증 rotatelogs 를 사용하지 않은 이유가 무엇인지 궁금하네요??

 

문서에는 아래와 같이 권고하고 있습니다.

SetEnvIfNoCase Request_URI "\.(ico|gif|jpg|swf|png|css|js)$" nolog-request
CustomLog "| $APACHE_HTTP_HOME/bin/rotatelogs -l $APACHE_HTTP_HOME/logs/accesslog.%Y%m%d 86400" combined env=!nolog-request

 

3. 검색 로봇에서 접근해서 정보수집하도록 허락하신거죠?

robot.txt 파일이 없더군요~

 

4. apache server-status 정보

apache server-status 정보는 아예 빼신 것 같은데요~
-> 당장은 사용하지 않아도 됩니다만,  추후, 운영하면서 dead-lock을 확인하거나, 아파치 request현황에 대한 정보를 볼 수 있는 자료로 사용될 수 있으니, 참조하세요~

 

현재 표준화 문서에서는 아래와 같이 가이드하고 있습니다.

 

<Location /server-status>

        SetHandler server-status

        Order deny,allow

        Deny from all

        Allow from  127.0.0.1

        Allow from  <사내IP>

</Location>

 

5. TraceEnable 설정

Cross-Site Tracing(XST) 공격에 노출되지 않도록 Trace 메소드를 Off로 하면 좋습니다.
-> TraceEnable Off

 

6. apache 정보 노출

현재 response header에 server 정보가 노출됨
Server Apache/2.2.15 (Unix) mod_ssl/2.2.15 OpenSSL/1.0.0a mod_jk/1.2.18
-> 다음을 추가해야 서버 정보가 노출되지 않습니다.
ServerTokens Prod
ServerSignature Off

 

7. mod_jk 로그 관련.

여러개의 tomcat을 구성할 때, 다음의 로그를 넣어주는 것이 좋음. 디버깅할 때 많은 도움이 됩니다.

표준화 문서에는 아래와 같이 가이드 하고 있습니다.

 

<IfModule mod_jk.c>
  JkWorkersFile "$APACHE_HTTP_HOME/conf/workers.properties"
  JkLogFile "| $APACHE_HTTP_HOME /bin/rotatelogs –l $APACHE_HTTP_HOME/logs/mod_jk.log. %y%m%d 86400 540 "

JkLogLevel error
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkRequestLogFormat     "%w %V %T"
</IfModule>

8.mod_jk timeout설정

-> 나중에 운영하시면서 이슈가 생기면, 문서를 통해서 socket_timeout 설정외 다른 timeout을 더 지정할 수 있습니다.

 

9. maxclient 설정

<IfModule mpm_prefork_module>
    StartServers          32
    MinSpareServers       24
    MaxSpareServers       48
    ServerLimit           1536
    MaxClients            1536
    MaxRequestsPerChild   2000
</IfModule>
위의 설정은 3개의 톰캣을 가정하고 나온 설정같습니다.  제가 언급드릴 만한 내용은 아니고, 톰캣의 connector 개수와 잘 맞추는 것이 중요하기 때문에 이상민차장님께서 언급해주시리라 믿습니다.

 


<vhost>

1. rewrite Rule 설정

  RewriteRule     ^/$                     /index.nhn [PT]
=>   RewriteRule     ^/$                     /index.nhn [PT, L]

새로운 rewriteRule을 추가하면서 이슈가 생길 수 있어서, L 이라는 부분을 추가하면 좋을 것 같습니다.

 

<server.xml>

 


    <Connector prot="8009"
       minThreads="128" maxThreads="512"
       enableLookups="false" redirectPort="8443"
       acceptCount="100" debug="0"
       connectionTimeout="120000"
       useBodyEncodingForURI="true"
       maxPostSize="10485760"
       protocol="AJP/1.3" URIEncoding="UTF-8"/>

 

1. connectionTimeout이 120초입니다. 이 부분은 적절한 수치로 해주시는 것이 좋을 것 같네요.

10초 (10000)으로 수정해주시면 어떨까 싶습니다.

 

2. post 방식으로 upload할 때, 10Mbytes로 설정하셨습니다. 파일 용량 정책이나, 파일 용량이 커져서 문제가 되거나, maxPostSize를 수정해 주셔야 할 것 같습니다.

 

 


  <Host name="desk.naver.com"  appBase="/home1/irteam/webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">

     <Context docBase="/home1/irteam/webapps" path="/" reloadable="true"/>

 

3. 명시적인 restart를 할 생각이시면, Host 설정의 unpackWARs, autoDeploy 설정과 Context의 reloadable 설정은 모두 false로 하는 게 좋습니다.

 


 

 

 

반응형

'etc' 카테고리의 다른 글

월요일 오후 서점  (0) 2010.12.20
살다보면  (0) 2010.12.18
cookie header  (0) 2010.11.26
code template 사용방법  (0) 2010.10.22
띠정보  (0) 2010.10.22