강좌
클라우드/리눅스에 관한 강좌입니다.
프로그램 분류

Apache 2.2.0 (인터넷웹서버)

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

logo

프 로그램명 : 아파치 2.2.0

파 일이름   : httpd-2.2.0.tar.gz

운 영체제   : Linux 기반의 OS

라 이센스   : GPL

홈 페이지   : http://apache.org


우 리가 흔히 웹서버( Web Server )라고 하여 apache, tomcat등을 주로 사용하고 있고 이것은 단독적으로 사용되기보다는 mysql,php,java등과 연동되어 사용자들에게 웹서비스를 제공하는데 사용되고 있다.


1 점대와 2.0대까지의 설치 후 구조는 거의 똑같으나 2.2.0 이후로 크게 달라진 부분으로 설 정파일의 분리를 들 수 있다.

사 용자 HOME 을정하는 UserDir 분이라든지 가상호스트 설정부분이 하나로

뭉 쳐있는 것이 아니라 파일도 따로 분류되어있으며 중심이 되는

httpd.conf 에서 인크루드하는 형식이다. 사용자마다 이렇게 분리된 것이

좋 다는 사람도 있고 아니다라는 사람도 있지만 관리자 입장에서 보면

시 스템 이전이라든지 깔끔하게 기능별로 분류가 되어있어 좋다는 생각이

들 었고 여러분도 설치후 이전 방식이 더 좋은지 2.2.0에서 바뀐 인터페이스

가 좋은지 테스트 해 보기를 바란다.


그 럼 이번 리뷰에서는 간단하게 apache2.2.0 설치 방법 및 이하 버전과

달 라진 점을 중점적으로 볼까 한다.


[설 치]

위 에서도 언급했듯이 apache는 단독적으로 설치되어 사용되는일이 거의

없 다. APM이라고 하여 웹서비스를 하기 위해 Apache, PHP, Mysql을 같이

설 치하여 웹서비스를 할수있도록 설치하는데 여기서 주제는 apache2.2.0 이므로 APM 설치는 이전 강좌에 있으니 참고하고 단 이전 자료중에 컴파일

옵 션부분은 다르므로 이점을 생각하고 보길 바란다.



먼 저 설치할 버전 및 파일이름은  httpd-2.2.0.tar.gz 이다.

아 래의 웹사이트에서 파일을 다운로드 받자. 페이지에 보면 소스가 딱 보인다. 다운방법은 여러게지만 여기서는 wget 으로 받는다.


http://httpd.apache.org/download.cgi

apache home page



* 여기서부터 녹 색은 실제 콘솔에서 직접 입력하는 부분이다.

+======================================================+cd /usr/local

wget http://mirror.apache.or.kr/httpd/httpd-2.2.0.tar.gz

tar xvfpz httpd-2.2.0.tar.gz

cd httpd-2.2.0

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

- 보통 컴파일 설치는 /usr/local/에서 한다.

- wget로 파일을 다룬로드한다.

- tar xvftpz 옵션으로 압축을 풀어준다.

- 풀면 httpd-2.2.0이 생기며 컴파일 및 인스톨을 하기 위하여 디렉토리 이동함

+======================================================+



* 아래 코드중 한줄 띄운것은 한줄이 끝날때까지 기다려야 한다는 의미 !!

+======================================================+

./configure --prefix=/usr/local/apache2 --enable-module-so


make -j 4 && make install


cd .. && rm -rf httpd-2.2.0.tar.gz

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

- 컴파일 옵션으로 prefix 기본설치위치와 enable-module-so는 DSO 방식의 설치 방법을

   지원하는 옵션이다. (APM 셋업 강좌를 참조하길)

- make할 때 -j 4는 cpu가 두 개일때 더 빨리 처리 할 수있을때 쓰는 옵션이고

  && 는 앞 명령어가 성공하면 뒤의 명령어를 실행하라는 것이다. ^^

- 상위 디렉토리에서 깔끔하게 다운받았던 소스를 삭제한다 (다시다운받으면 되니 구지

   보관할 필요는 없다.)


- TIP 1 rewrite 모듈

  ./configure --prefix=/usr/local/apache2 --enable-rewrite --enable-so

  위와같이 콘피귤러 옵션을 주어도 위와 동일하게 설치가 되며 요즘 rewrite모듈을

  을 요구하고 필요로하는 업체가 많다보니 --enable-rewrte 옵션을 자주 사용하게 된다.

  혹시 관리자라면 참고하면 좋겠다.


- TIP 2 실행, 재실행 하기

   /usr/local/apache2/bin/apachectl [start , restart]


- TIP 3 실행 확인법

   pstree | grep httpd  ==> 프로세스 보는 명령어로 아파치 데몬인 httpd를 본다.

   netstat -anp | grep LISTEN ==> httpd포트가 열려있나 본다. (80번 포트사용함)

+======================================================+


설 치는 여기까지이며,(apache 만) 과연 APACHE2.2 가 기존의 것들과

무 엇이 다르며 어떤 특징이 있는지 알아보자.

아 직 apache.org에나 다른 사이트에서 검색해볼때 최신버전인 2.2문서들은

그 리많치가 않고 아직 여러 곳에서 2.0 이상버전은 아직 상용화 하기에는

조 금 안전성이 떨어진다는 이야기도 있다.

그 래서 여기서는 설치후 가장 먼저 해주는 기본 httpd.conf 셋팅 및

핵 심변화부분 과 모듈관련하여 살펴본다.


먼 저 httpd.conf가 이전과 눈에 띄게 구조가(셋팅내용별 파일분리) 바뀌었다.

/usr/local/apache2/conf/httpd.conf 와 /usr/local/apache2/conf/extra/httpd-userdir.conf  을환경에 맞게 수정 (아파치2.2버전은 user디렉토리 설정파일이 분리되어있다.)

하 위버전에서의 /usr/local/apache/conf/ 안의 내용들

[root@su202 /usr/local/apache/conf]# ll

합 계 188

-rw-r--r--  1 root root   348  8월 27  2005 access.conf

-rw-r--r--  1 root root   348  8월 27  2005 access.conf.default

-rw-------  1 root root 34060  3월 24 17:06 httpd.conf

-rw-r--r--  1 root root 33653  8월 27  2005 httpd.conf.bak

-rw-r--r--  1 root root 32941  8월 27  2005 httpd.conf.default

-rw-r--r--  1 root root 12965  8월 27  2005 magic

-rw-r--r--  1 root root 12965  8월 27  2005 magic.default

-rw-r--r--  1 root root 15020  8월 27  2005 mime.types

-rw-r--r--  1 root root 15020  8월 27  2005 mime.types.default

-rw-r--r--  1 root root   357  8월 27  2005 srm.conf

-rw-r--r--  1 root root   357  8월 27  2005 srm.conf.default


2.2.0 에서의 /usr/local/apache/conf/ 안의 내용들

[root@lecture /usr/local/apache2/conf]$ ll

합 계 56

drwxr-xr-x  2 root root  4096  3월 29 14:38 extra

-rw-r--r--  1 root root 13480  3월 29 14:38 httpd.conf  <--- 주설설정파일

-rw-r--r--  1 root root 12958  3월 29 14:38 magic

-rw-r--r--  1 root root 15020  3월 29 14:38 mime.types

drwxr-xr-x  3 root root  4096  3월 29 14:38 original


extra 디렉토리 안의내용

httpd-autoindex.conf  ==> index.html index.php index.jsp index.xml 등 지정

httpd-dav.conf

httpd-default.conf

httpd-info.conf

httpd-languages.conf  ==> 언어부분정의

httpd-manual.conf

httpd-mpm.conf

httpd-multilang-errordoc.conf

httpd-ssl.conf

httpd-userdir.conf => 계정들의 홈디렉토리를 무엇으로 할건지 주로 www , public_html 등

httpd-vhosts.conf => httpd.conf의 마지막부분에 있었던 가상호스트부분을 여기다 기술  

* 기본적으로 httpd-autoindex.conf 와 httpd-userdir.con 정도 정하고

   웹테스트하면 장기본적인 아파치 서비스를 확인 할 수 있을 것이다.


자 위의 하위버전과 2.2.0의 버전에서의 conf 디렉토리의 안을보면 2.2.0이 더 간략화되고 업어진파일이나 httpd.conf 를 열어 비교해보면 중요 몇가지 설정들이 모두 extra디렉토리에 파일로 설정하게끔 되어있음을 알수있고 httpd.conf에서는 이파일들을 인크루드 한다.

그 래서 처음에 설치하여 웹서비스가 왜 안될까? 이전에 httpd.conf에서 설정하는 항목들이 안보여서 당황해 하지 않기를 바란다.



핵 심 부분에서 나아진 점


Authn/Authz, 캐쉬, 프록시 등 새로운 mod_proxy_balancer 모듈이 mod_proxy를 위한 부하분산 서비스를 제공한다. 새로운 mod_proxy_ajp 모듈은 아파치 톰캣이 사용하는 Apache JServ Protocol 1.3 버전을 지원한다.

mod_filter 는 출력필터순서를 동적으로 설정할 수 있다. 그래서 요청 헤더, 응답 헤더, 환경변수에 따라 선택적으로 필터를 사용할 수 있고, 2.0 구조의 의심스러운 의존관계와 순서 문제를 덜어준다.


모 듈에서 나아진 점


- mod_authnz_ldap

이 모듈은 2.0의 mod_auth_ldap 모듈을 2.2의 Authn/Authz 구조로 옮긴 것이다. Require 지시어에서 LDAP 속성(attribute) 값과 복잡한 검색 필터를 사용할 수 있는 기능이 추가되었다.

- mod_info

아 파치가 읽어들인 설정지시어를 파일명과 줄번호와 같이 보여주는 ?config 아규먼트가 추가되었다. 모듈은 모든 요청 훅(hook)의 순서와 httpd -V와 비슷한 컴파일 정보도 보여준다.


모 듈 개발자에게 달라진 점


- APR 1.0 API

아 파치 2.2는 APR 1.0 API를 사용한다. APR과 APR-Util에서 없어지기로 예정되었던 함수와 심볼이 모두 없어졌다.

- 연결 오류 로그 기록

클 라이언트와 연결에 발생한 오류를 로그에 기록하기위해 함수 ap_log_cerror를 새로 추가했다. 로그에 기록하면 문구에 클라이언트 IP 주소가 나온다.

설 정 테스트용 훅 추가

    사용자가 httpd에 -t 옵션을 사용한 경우에만 모듈이 특별한 코드를 실행하도록 훅 test_config를 새로 추가했다.

쓰 레드기반 MPM의 스택크기 지정

    모든 쓰레드기반 MPM의 스택크기를 지정하기위해 ThreadStackSize 지시어를 새로 추가했다. 쓰레드 스택크기 기본값이 작은 플레폼에서 일부 제삼자가 만든 모듈을 사용할 경우에 필요하다.

출 력필터를 위한 프로토콜 처리

    전에는 모든 필터에게 자신이 처리한 응답에 올바른 응답 헤더를 생성하는지 확인할 책임이 있었다. 이제 필터는 ap_register_output_filter_protocol 혹은 ap_filter_protocol 호출을 사용하여 일상적인 프로토콜 관리를 mod_filter에게 떠넘길 수 있다.


리 뷰를 마무리 하면서 ... ...

어 찌보면 아파치는 웹서비스의 꽃이라고 해도 과언이 아니라고 생각하며

2.2.X 까지 발전된 아파치를 보며 2.0대에서부터 프로세서계념에서 스래드

계 념으로 바뀌고 2.2.X 대에서는 구조의 변경등 계속 발전함을 볼수 있었다.

2.2.0 으로 설치하고 구조와 어찌보면 약간의 문서화적인 차이점을 보았는데

깊 은 내용은 직접설치해보고 많은 테스트를 거쳐서 느낌이 올때 자신의 것이 되지않나 싶고 여기서는 2.2.0버전의 설치 및 이하버전의 httpd.conf 설정파일 구조가 바뀌어서 이에 당황해 하지 않는다면 이 리뷰의 목표를

다 한 것이라고 믿고 싶다.


참 고자료 :  http://apache.org

TEST OS : CentOS 4.2 Final [Kernel 2.6.9-22 EL]

작 성자 : 수 퍼유저코라아 서버관리팀 안재성(mymaster@superuser.co.kr)

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,041 명
  • 현재 강좌수 :  35,855 개
  • 현재 접속자 :  131 명