[리눅스] 웹서버 하나에서 아파치 2개 띄우기

  웹서버 하나에서 아파치(Apache)를 여러 개 돌릴 수 있다면, 아파치 엔진이 프록시 기능을 통하여 서로 다른 일을 맡게 할 수 있다. 맡는 일에 맞추어 아파치 엔진들의 설정값을 조절함으로써 메모리나 CPU 자원을 아끼거나 더욱 많이 쓰도록 엮을 수 있다.주1

  이미 아파치(apache)가 웹서버에 깔려 있고 /usr/sbin에 httpd 파일이 있고 /etc/httpd/conf에 httpd.conf가 있고 /etc/init.d에 httpd 스크립트가 있다고 가정한다.주2

  apachectl과 httpd.conf를 각각 다른 이름으로 복사하여 새 아파치 서버에서 쓸 파일을 만들어 둔다.

# cp /usr/sbin/apachectl /usr/sbin/apachectl2
# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd2.conf

  httpd2.conf의 포트 번호(Listen 항목)를 비롯한 설정값들은 새로 돌릴 아파치 서버에 맞게 고친다.


  apachectl2 파일에서는 HTTPD의 경로값을 아래처럼 고친다.

HTTPD='/usr/sbin/httpd'   →   HTTPD='/usr/sbin/httpd -f /etc/httpd/conf/httpd2.conf'

  httpd2.conf 파일에서 PidFile을 고쳐서 두 아파치가 서로 다른 PID(프로세스 식별자)로 작동할 수 있게 한다.

PidFile run/httpd.pid   →   PidFile run/httpd2.pid

  이렇게 하고 나서 다음 명령으로 둘째 아파치를 띄울 수 있다.주3

# /usr/sbin/apachectl2 start

  chiconfig로 등록해 두면 운영체제가 시작할 때에 둘째 아파치가 뜨게 할 수 있다. 먼저 apachectl2 파일을 /etc/init.d에 httpd2 따위로 적당히 이름을 바꾸어 복사한다.

# cp /usr/sbin/apachectl2 /etc/init.d/httpd2

  httpd2 파일 안의 맨 첫줄 #!/bin/sh 아래에 다음 내용을 끼워넣는다.

#!/bin/sh
# chkconfig: - 85 15
# description: The Apache HTTP Server

  이렇게 하면 httpd2을 chkconfig로 리눅스가 시작할 때 띄우는 풀그림(서비스) 목록에 올려 실을 수 있다. (chkconfig로 등록한 풀그림은 ntsysv 명령으로 통하여 목록을 확인하고 실행할지를 정할 수 있다.)

# chkconfig --add httpd2              ☞ 리눅스가 시작할 때에 띄울 서비스 목록에 올림
# chkconfig --level 2345 httpd on  ☞ 리눅스가 시작할 때에 띄우게 함
# chkconfig --del httpd2               ☞ 리눅스가 시작할 때에 띄울 서비스 목록에서 뺌

httpd2이 등록된 ntsysv 화면
httpd2이 목록에 올라간 ntsysv 화면
〈주석〉
  1. 앞단에 내용이 잘 바뀌지 않는 그림이나 음악 파일 따위를 처리하는 가벼운 서버를 두고, PHP나 JSP처럼 결과물이 자꾸 바뀌는 것들은 뒷단 서버에게 처리를 넘기는 분산 기법이 자주 쓰이다. back
  2. 이 파일들의 경로는 리눅스 판이나 아파치 판에 따라 조금씩 다를 수 있다. back
  3. 둘째 아파치가 시작되지 못하고 막힌다면 포트 번호와 모듈(*.so), Include로 들어가는 설정 파일들(*.conf)을 살펴 본다. 첫째 아파치가 이미 차지한 자원을 둘째 아파치가 쓰려고 하여 막힐 수 있다. back
글 걸기 주소 : 이 글에는 글을 걸 수 없습니다.

덧글을 달아 주세요