[apche 1.3.x | 2.0.x 2.2 x.2.4.x ] 아파치 버전별 차이점
. 아파치 1.3.x의 경우
아파치 1.3.x 버전에서 MaxClient 는 기본적으로 256 까지만 설정할 수 있습니다.
이 파라미터 값을 증가시키려면 아파치의 소스를 수정 후 다시 컴파일해야 합니다.
아파치 소스 디렉토리에 있는 src/include/httpd.h 파일에서 HARD_SERVER_LIMIT 256 로 설정된 값을
512 나 1024로 변경하여 저장한 후, 아파치를 재 컴파일해주면 됩니다..
2. 아파치 2.2.x 의 경우
아파치 2.2 버전은 1.3 과 매우 다릅니다.
따라서 httpd.h 파일에는 MaxClient 와 관련된 옵션이 없습니다.
저도 이 옵션 찾느라 엄청나게 헤매고 결국은 영문 홈피를 번역해 가며 해답을 찾았습니다.
아파치 1.3 버전에서는 src/include/httpd.h 파일 하나만 수정한 후 configure 해주면 되었지만
아파치 2.2 버전에서는 2개의 파일에서 설정을 바꾸어 주어야 합니다.
MaxClient 값을 256에서 2048까지 높이려고 할 경우를 예로 설명드리겠습니다.
먼저, 소스 디렉토리에서 server/mpm/prefork/prefork.c 파일을 vi 에디터 등으로 열고
#define DEFAULT_SERVER_LIMIT 256 으로 되어 있는 부분을
#define DEFAULT_SERVER_LIMIT 2048 으로 수정한 후, 저장합니다..
여기서, 2048 / 256 을 하시면 8 이라는 배수가 나옵니다. 이 배수를 잘 기억해 둡니다.
다음에는 소스 디렉토리에서 server/mpm/worker/worker.c 파일을 vi 에디터 등으로 열면
#define DEFAULT_SERVER_LIMIT 16 으로 되어 있는 부분이 있습니다.
여기에서 16 * 8 (아까 prefork.c 파일에서 기본값인 256에다 곱해서 2048이 된 배수인 8) 을 곱합니다. 256 이 되는군요.
#define DEFAULT_SERVER_LIMIT 256 으로 수정한 후 저장합니다.
그 다음에는 ./configure --prefix=/usr/local/apache2.2 --enable-rewrite 명령으로 아파치를 재 컴파일한 후,
/usr/local/apache2.2/conf/extra/httpd-mem.conf 파일을 에디터로 열어 MaxClient 부분의 숫자값을 2048 로 변경하여
저장한 후, 아파치를 재시작하면 됩니다.
3. 아파치 2.4.x 의 경우
소스로 컴파일 하는 경우 방법이 아예 다르네요~
[mpm 접속시 최대 접속자수 설정]
아파치 웹서버의 경우 MPM(Multi Processing Module)방식에는 prefork와 worker로 나뉜다.
- prefork는 독립적인 메모리를 사용하여 안정적이지만 많은 메모리를 사용하게 된다.
- worker는 고성능의 멀티코어 프로세서 기반에서 유용하고, 더 적은 메모리를 사용하기에 통신량이 많은 경우 더 유리하다.
* 젠드가드는 prefork에서만 설치된다. 뭔지 모르면 그냥 이걸로 한다.
컴파일전 환경설정에서 —with-mpm 옵션으로 설정할 수 있고, 설치방식에 따라 최대 접속자수를 지정해야 하고, 설정하지 않을경우 기본값으로 설치가 된다.
- prefork 설정시
# vi server/mpm/prefork/prefork.c (73번 라인:버젼 따라 위치는 다를수 있음)
DEFAULT_SERVER_LIMIT의 상수값을 변경해준다. 난 1024로 수정했다
- worker 설정시
# vi server/mpm/worker/worker.c (84번 라인:버젼 따라 위치는 다를수 있음)
DEFAULT_SERVER_LIMIT의 상수값을 64정도로 수정해준다