Apache 2.0의 새로운 기능 개요 - Apache HTTP Server

Apache Server 2.0

Apache HTTP Server Version 2.0

<-

Apache 2.0의 새로운 기능 개요

이 문서는 아파치 웹서버 1.3 버전과 2.0버전간의 주된 차이점을 설명한다.

top

핵심 부분에서 나아진 점

유닉스 쓰레드
POSIX 쓰레드를 지원하는 유닉스 시스템에서 아파치를 여러 프로세스와 여러 쓰레드로 혼합해서 실행할 수 있다. 전부는 아니지만 많은 경우 확장가능성(scalability)을 높인다.
새로운 컴파일 시스템
컴파일 시스템이 autoconflibtool을 사용하도록 재작성되었다. 그래서 아파치 구성 시스템이 다른 패키지들과 좀더 비슷해졌다.
여러 프로토콜 지원
이제 아파치는 여러 프로토콜을 서비스할 수 있는 구조를 갖췄다. mod_echo가 그 예로 작성되었다.
비유닉스 플래폼에 대한 더 나은 지원
Apache 2.0는 BeOS, OS/2, 윈도우즈와 같은 비유닉스 플래폼에서 더 빠르고 안정화되었다. 이제 아파치는 이들 플래폼에서 버그가 많고 성능이 느렸던 POSIX 호환층 대신 자체 API로 구현된 플래폼 특유의 다중처리 모듈 (MPM)과 Apache Portable Runtime (APR)을 사용하여 구현된다.
새로운 아파치 API
모듈 API가 2.0에서 상당히 변했다. 1.3의 여러 모듈 순서와 우선순위 문제가 사라졌다. 2.0은 이를 대부분 자동으로 처리하며, 모듈 순서는 이제 더 유연한 훅(hook) 단위로 지정한다. 또, 아파치 서버 핵심 부분을 수정하지 않고 새로운 모듈 기능을 제공하는 함수가 추가되었다.
IPv6 지원
하위 Apache Portable Runtine 라이브러리가 IPv6를 지원하는 시스템에서 아파치는 기본적으로 IPv6 소켓을 기다린다. 또, Listen, NameVirtualHost, VirtualHost 지시어가 IPv6 숫자 주소를 지원한다. (예, "Listen [2001:db8::1]:8080").
필터링
이제 아파치 모듈을 서버로 오고가는 흐름에 대한 필터로 사용할 수 있다. 예를 들어 mod_includeINCLUDES 필터를 사용하여 CGI 스크립트 출력에서 Server Side Include 지시어를 처리할 수 있다. mod_ext_filter 모듈은 CGI 프로그램을 핸들러로 사용하는 것과 같이 외부 프로그램을 필터로 사용할 수 있게 한다.
다국어 오류 응답
브라우저로 보내는 오류 응답문이 이제 SSI 문서를 사용하여 다국어로 제공된다. 관리자는 통일된 외관을 위해 이 문서를 수정할 수 있다.
간단해진 설정
혼란을 주던 많은 지시어들이 간단해졌다. 자주 혼란을 주던 PortBindAddress 지시어는 없어지고 IP 주소 연결에 Listen 지시어만을 사용한다. ServerName 지시어는 리다이렉션과 가상호스트 인식에만 사용될 서버명과 포트를 지정한다.
Windows NT 유니코드 자체 지원
Windows NT에서 Apache 2.0은 이제 모든 파일명 인코딩에 utf-8을 사용한다. 파일명은 하위 유니코드 파일시스템으로 직접 변역되어, Windows 2000과 Windows XP를 포함한 모든 Windows NT기반 시스템에 다국어 지원을 제공한다. 이 기능은 Windows 95, 98, ME에는 지원되지않고, 파일시스템 접근에 전과 같이 시스템의 지역 코드페이지를 사용한다.
정규표현식 라이브러리 Updated
Apache 2.0은 Perl호환 정규표현식 라이브러리 (Perl Compatible Regular Expression Library) (PCRE)를 포함한다. 이제 모든 정규표현식에 더 강력한 Perl 5 문법을 사용할 수 있다.
top

모듈에서 나아진 점

mod_ssl
Apache 2.0에서 새로 추가되었다. 이 모듈은 OpenSSL이 제공하는 SSL/TLS 암호화 프로토콜의 인테페이스다.
mod_dav
Apache 2.0에서 새로 추가되었다. 이 모듈은 웹컨텐츠를 올리고 관리하기위한 HTTP Distributed Authoring and Versioning (DAV) 표준을 구현한다.
mod_deflate
Apache 2.0에서 새로 추가되었다. 네트웍 사용량을 줄이기위해 브라우저에게 컨텐츠를 압축해서 보내라고 요청할 수 있다.
mod_auth_ldap
Apache 2.0.41에서 새로 추가되었다. 이 모듈은 HTTP Basic Authentication에 사용하는 정보를 LDAP 데이터베이스에 저장한다. 관련된 mod_ldap 모듈은 연결풀(connection pool)을 제공하고, 결과를 캐싱한다.
mod_auth_digest
공유메모리를 사용하여 프로세스간 세션 캐싱을 지원한다.
mod_charset_lite
Apache 2.0에서 새로 추가되었다. 이 실험적인 모듈은 문자집합 변환과 문자집합 재작성 기능을 제공한다.
mod_file_cache
Apache 2.0에서 새로 추가되었다. 이 모듈은 Apache 1.3의 mod_mmap_static 기능에 더 나은 캐쉬 기능을 추가했다.
mod_headers
이 모듈은 Apache 2.0에서 더 유연해졌다. 이제 mod_proxy가 사용하는 요청 헤더를 수정할 수 있고, 경우에 따라서 응답 헤더를 설정할 수도 있다.
mod_proxy
이 프록시 모듈은 새로운 필터 구조를 이용하고 더 믿을만한 HTTP/1.1 프록시를 구현하기위해 완전히 재작성되었다. 추가로 새로운 <Proxy> 설정 섹션은 프록시 설정을 더 쉽게 (그리고 내부적으로 더 빠르게) 만든다. 과거 <Directory "proxy:..."> 설정은 이제 지원하지 않는다. 모듈은 proxy_connect, proxy_ftp, proxy_http와 같이 지원하는 프로토콜 별로 나눠졌다.
mod_negotiation
새로운 ForceLanguagePriority 지시어는 클라이언트가 NOT ACCEPTABLE이나 MULTIPLE CHOICES 응답 대신 모든 경우 한 문서를 받음을 보장한다. 추가로 협상 알고리즘과 MultiViews 알고리즘이 더 일관된 결과를 내도록 수정되었고, 문서 내용을 포함할 수 있는 새로운 형식의 type map이 추가되었다.
mod_autoindex
자동으로 생성된 디렉토리 목록이 이제 더 깔끔한 형식을 위해 HTML 표를 사용할 수 있게 되었고, 버전 정렬을 포함하여 정렬순서를 자세히 조절할 수 있으며, 디렉토리 목록을 와일드카드로 걸러낼 수 있다.
mod_include
새로운 지시어를 사용하여 SSI 요소의 기본 시작 태그와 마침 태그를 변경할 수 있고, 오류와 시간형식을 SSI 문서외에 주 설정파일에서도 설정할 수 있게 되었다. mod_include에서 (이제 Perl 정규표현식 문법으로) 정규표현식 파싱과 그룹의 결과를 mod_include$0 ... $9 변수로 얻을 수 있다.
mod_auth_dbm
이제 AuthDBMType 지시어를 사용하여 여러 DBM류 데이터베이스를 지원한다.