본문으로 바로가기

리눅스 Apache 2.2 특징

category 리눅스/Linux 일반 2013. 7. 9. 06:21

이 문서는 아파치 HTTP 서버 2.0 과 2.2 버전 사이의 큰 변화에 대해서 기술합니다. 1.3 부터의 새로운 특징을 위해선  http://httpd.apache.org/docs/2.2/en/new_features_2_0.html 문서를 보시기 바랍니다.

핵심적인 기능향상

Authn/Authz

같이 들어가있는 인증과 권한 모듈이 리팩토링되었습니다. 새로운 mod_authn_alias 모듈은 매우 간단하게 확실한 인증 설정을 할수 있습니다. 모듈 이름 변경과 개발자 변경에서 더 자세한 정보를 얻을수 있습니다.

Caching

mod_cache, mod_disk_cache, 그리고 mod_mem_cache 는 많은 변화가 있었고, 이제는 제품으로서의 질을 지녔다고 생각합니다. htcacheclean 은 mod_disk_cache 설정을 삭제하는 법을 소개합니다.

Configuration

기본 설정 레이아웃이 간단하고 모듈화되었습니다. 널리 사용되던 설정의 일부분들은 이제 아파치에 포함되었고 이제 메인 서버 설정에 쉽게 추가할 수 있습니다.

Graceful stop

prefork, worker, 그리고 event 다충처리모듈들은 이제 graceful-stop 신호를 통해서 안전하게 종료할 수 있습니다. GracefulShutdownTimeout 지시어가 타임아웃값을 지정하기 위해 추가되었으며, 이 시간은 httpd가 일정 시간 후에 request에 대해 고려하지 않고 종료할 수 있도록 합니다.

Proxying

새로운 mod_proxy_balancer 모듈은 mod_proxy의 부하를 조절합니다. 새로운 mod_proxy_ajp 모듈은 Apache Tomcat에서 사용하는 Apache JServ Protocol version 1.3을 지원하기 위해 추가되었습니다.

Regular Expression! Library Updated

Perl 정규표현식 라이브러리(PCRE) 5.0이 포함되었습니다. httpd는 --with-pcre 플래그를 통해 PCRE를 설치할 수 있습니다.

Smart Filtering

mod_filter 는 출력 필터체인을 동적으로 구성할 수 있습니다. 이는 필터들이 request나 response 헤더 또는 환경변수에 따라 선택적으로 첨가될 수 있으며, 2.0 아키텍쳐에 있었던 의존성과 정렬 문제들로부터 분리시키게 됩니다.

Large File Support

httpd는 이제 32-bit Unix 시스템에서 2GB보다 큰 파일을 지원합니다. 2GB보다 큰 요청 body를 지원하는 것 또한 추가되었습니다.

Event MPM

이벤트 다중처리모듈은 keep alive 요청들을 다루고 연결을 accept하는데 사용합니다. keep alive 요청은 전통적으로 worker가 요청을 다루기 위해 httpd가 필요했습니다. 이 요청을 다루는 worker는 keep alive 타임아웃이 될때까지 다시 사용하지 못합니다.

SQL Database Support

mod_dbd는 apr_dbd 프레임웍과 함께 필요한 모듈에 직접 SQL을 지원하며, thread된 MPM들을 위해 connection pooling을 지원합니다.

모듈 향상

Authn/Authz

aaa 디렉토리의 모듈들은 이름이 변경되고 인증처리를 위한 향상된 지원을 제공받습니다. 예를들어 mod_auth는 이제 mod_auth_basic과 mod_authn_file로 분리되었고, mod_auth_dbm은 이제 mod_authn_dbm으로 불리며, mod_access는 mod_authz_host로 바뀌었습니다. 또한 새로운 mod_authn_alias 모듈이 인증 설정을 간결하게 하기위해 추가되었습니다.

mod_authnz_ldap

이 모듈은 버전 2.0의 mod_auth_ldap 모듈의 2.2의 Authn/Authz 프레임워크로의 port입니다. LDAP 속성값을 사용하고, Require 지시어에서의 복잡한 검색 필터 등의 새 기능이 포함되었습니다.

mod_authz_owner

파일시스템에서 파일의 소유자를 기반으로 한 접근 인증을 위한 새 모듈입니다.

mod_version

동작중인 아파치 버전에 따라 설정 블록을 활성화 시킬 수 있는 새로운 모듈입니다.

mod_info

새로운 ?config 인자가 추가되었으며, 이 인자는 아파치에 의해 파싱된 설정 지시어들을 그들의 파일 이름과 라인넘버까지 포함해 보여줍니다. 모듈은 또한 모든 요청의 처리 순서와 httpd -V와 비슷한 추가적인 빌드 정보들을 보여줍니다.

mod_ssl

의 TLS 암호화 연결을 허용하기 위해 RFC 2817 를 지원합니다.

mod_imagemap

mod_imap이 혼동을 피하기 위해 mod_imagemap으로 이름이 변경되었습니다.

프로그램 개선

httpd

현재 설정에서 로드되는 모든 모듈들을 나열하는 새로운 커맨드 라인옵션 -M이 추가되었습니다. -l 옵션과 다르게 이 리시트는 mod_so를 통해 로드된 DSO를 포함합니다.

httx2dbm

텍스트 입력을 통해 dbm 파일을 생성하는 새로운 프로그램이며, dbm 맵 타입의 RewriteMap을 위해 사용됩니다.

모듈 개발자 변경

APR 1.0 API

아파치 2.2는 APR 1.0 API를 사용합니다. 모든 사용이 중지된 function과 심볼들은 APR과 APR-Util에서 제거되었습니다. 자세한 사항은 APR 웹사이트를 참고하십시오.

Authn/Authz

인증과 권한 모듈들은 다음과 같이 이름이 변경되었습니다.

mod_auth_* -> HTTP 인증 절차를 구현한 모듈들

mod_authn_* -> 백엔드 인증 제공을 담당하는 모듈들

mod_authz_* -> 권한부여(or 접근허용)를 구현한 모듈들

mod_authnz_* -> 인증과 권한부여를 구현한 모듈들

새로운 백엔드 인증 제공자는 매우 쉬운 백엔드 인증 생성을 위해 계획되었습니다.

커넥션 에러 로깅

새로운 함수인 ap_log_cerror는 클라이언트의 커넥션 관련 오류를 로깅하기 위해 추가되었습니다. 로깅할 때 클라이언트의 ip를 포함합니다.

테스트 설정 훅 추가

새로운 훅인 test_config는 유저가 httpd에 -t 를 주었을 때만 모듈이 특별한 코드를 실행하도록 추가되었다.

쓰레드된 MPM의 스택사이즈 설정

새로운 지시어인 ThreadStackSize는 모든 쓰레드된 MPM들의 스택 크기를 설정하기 위해 추가되었다. 이는 작은 기본 스택크기를 지닌 플랫폼의 몇몇 써드파티 모듈들을 위해 필요하다.

출력 필터를 위한 프로토콜 핸들링

과거에는 모든 필터들이 자신이 영향을 미친 응답에 대해 정확한 응답헤더를 생성하는지 확인할 의무가 있었다. 필터는 이제 보통의 프로토콜 관리를 mod_filter의 ap_register_output_filter_protocol 또는 ap_filter_protocol를 호출함으로서 관리한다.

모니터 훅 추가

모니터 훅은 보통/스케줄이 있는 일들을 루트 프로세스에서 동작하는것을 가능하게 한다.

정규표현식 API 변경

pcreposix.h 헤더는 더이상 유효하지 않으며, 그것은 새로운 ap_regex.h 헤더로 교체되었습니다. 예전 헤더에서 POSIX.2의 regex.h 구현 부분은 이제 ap_regex.h의 ap_ 네임스페이스에서 사용할 수 있습니다. regcomp, regexec 등의 호출은 ap_reg_comp, ap_regexec로 교체되었습니다.

DBD 프레임워크(SQL 데이터베이스 API)

아파치 1.X와 2.0에서 모듈들은 자신들이 SQL 관리에 대한 책임을 가지기 위해서 SQL 백엔드를 필요로 했습니다. 재개발하는 것과 별도로, 이는 비효율적이었으며, 예를 들면 몇몇의 모듈들은 각자 커넥션을 유지했습니다.

아파치 2.1과 그 이후 버전은 APR 1.2와 이후 버전이 데이터베이스와의 상호작용을 위해 apr_dbd API를 제공함에도 불구하고 데이터베이스 커넥션 관리(쓰레드와 쓰레드되지 않는 MPM들을 위한 최적화 정책을 포함한)를 위해 pa_dbd API를 제공합니다.

새로운 모듈들은 이제 모든 SQL 데이터베이스 명령시에 이것들을 사용해야 합니다. 기존의 어플리케이션 중 이를 사용할법한 것은 업그레이드를 해야합니다.

출처 : http://httpd.apache.org/docs/2.2/en/new_features_2_2.html