Apache 2.2.0 (인터넷웹서버)
작성자 정보
- 웹관리자 작성
- 작성일
컨텐츠 정보
- 6,405 조회
- 0 추천
- 목록
본문
프 로그램명 : 아파치 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
* 여기서부터 녹 색은 실제 콘솔에서 직접 입력하는 부분이다. +======================================================+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) |
관련자료
-
이전
-
다음