마스터포유(Master4U)
Monday, 17 of January
 

로그인
Apache Module Index
관리자  2009-02-26 15:50:56 Hit:2321
링크 #1: http://whitebear.tistory.com/entry/Apache-Module-Index











Apache는 모두 Module이라고 하는 단위로 이루어져 있다. Core Module에 Multi-Processing Module을 기본으로 해서 SSL, Virtual Host등의 많은 Module을 제공한다.
Apache Module의 기본적인 내용은 다음과 같다.

  • 설치된 Apache Module은 다음과 같이 확인할 수 있다. ( # httpd -l )
  • 추가로 컴파일 된 Module은 $APACHE_HOME/modules 안에 설치된다.
  • 추가로 컴파일 된 Module을 Apache에 적용하기 위해서는 httpd.conf 파일안에 LoadModule 설정을 추가해 주어야 한다.
Apache를 설치하면 사용할 수 있는 기본적인 Module은 많지만 각각을 어떻게 사용해야 하는지는 알기 힘들다. 워낙 많은 모듈들이 있기 때문에.. httpd.conf 파일안을 보면 기본적인 설정이나 설명이 되어 있어 이를 보면서 설정을 해도 되지만 자세한 부분이나 정확히 원하는 설정을 하기는 힘들다.

예로 얼마전 Apache MPM을 prefork가 아닌 worker로 컴파일 한 적이 있다. (worker로 컴파일 하는 방법은 전에 올린 포스트를 보면 된다.) worker로 컴파일을 했기 때문에 process당 몇개의 thread를 생성 할지 몇개의 process를 생성 할지에 대한 설정을 해야 했다. 기본적으로 되어 있는 설정은 다음과 같았다.

<IfModule worker.c>
StartServers         2
MaxClients         150
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>

실제 운영시에는 최고 150개의 Connection으로는 버티기 힘들기 때문에 MaxClients 값을 1500개로 변경하였다. 그리고 다시 Apache를 다시 기동하니 다음과 같은 에러가 발생하였다.

WARNING: MaxClients of 1500 would require 60 servers,
 and would exceed the ServerLimit value of 16.
 Automatically lowering MaxClients to 400.  To increase,
 please see the ServerLimit directive.

MaxClients를 1500로 하려면 60개의 Server가 필요한데 설정된 값은 16개라는 것이다. 그래서 현재 MaxClients를 400으로해서 기동하겠다는 메시지 이다. ServerLimit이라는 값을 설정한 적이 없는데 16으로 표시되었단 애기는 기본이 16으로 설정되어 있다는 애기였다.
그럼 ServerLimit값을 넣어 주면 되겠지 하고 다음과 같이 ServerLimit 값을 추가 해 주었다.

<IfModule worker.c>
StartServers         2
MaxClients         150
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25
ServerLimit         60
MaxRequestsPerChild  0
</IfModule>

그러나 위와 같이 설정해도 에러가 나는것은 마찬가지였다.
원인은 ServerLimit의 위치였다. (누가 알았겠는가.. 아무데나 넣어주면 되는거 아닌가? Apache 버그인가?) 하튼.. ServerLimit을 StartServers위에 배치하니 정상적으로 기동이 되었다.

최종 설정은 다음과 같다.


<IfModule worker.c>

ServerLimit         60
StartServers         2
MaxClients         150
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>


이러한 정보를 얻은 곳은 Apache Module Index라는 곳이다. Apache에서 제공하는 Module에 대한 설명과 설정 방법이 상세히 나와있다. 필요한 일이 있다면 찾아 보시길~~
이올린에 북마크하기(0) 이올린에 추천하기(0)


본문인쇄본문메일발송
한글! Win2003 + apache-tomcat 에서 한글 쓰기 [1]
☞Syntax error on line 53 of /usr/local/apache/conf/httpd.conf [1]
Copyright 1999-2019 Zeroboard / skin by ChanBi