Apache 2.0의 새로운 기능 개요
이 문서는 최신판 번역이 아닙니다.
최근에 변경된 내용은 영어 문서를 참고하세요.
이 문서는 아파치 웹서버 1.3 버전과 2.0 버전간의 주된 차이점을
설명한다.
참고
- 유닉스 쓰레드
- POSIX 쓰레드를 지원하는 유닉스 시스템에서 아파치를
여러 프로세스와 여러 쓰레드로 혼합해서 실행할 수 있다.
전부는 아니지만 많은 경우 확장가능성(scalability)을 높인다.
- 새로운 컴파일 시스템
- 컴파일 시스템이
autoconf
와 libtool
을
사용하도록 재작성되었다. 그래서 아파치 구성 시스템이 다른
패키지들과 좀더 비슷해졌다.
- 여러 프로토콜 지원
- 이제 아파치는 여러 프로토콜을 서비스할 수 있는 구조를
갖췄다.
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_include
의
INCLUDES
필터를 사용하여 CGI 스크립트 출력에서
Server Side Include 지시어를 처리할 수 있다.
mod_ext_filter
모듈은 CGI 프로그램을
핸들러로 사용하는 것과 같이 외부 프로그램을 필터로
사용할 수 있게 한다.
- 다국어 오류 응답
- 브라우저로 보내는 오류 응답문이 이제 SSI 문서를
사용하여 다국어로 제공된다. 관리자는 통일된 외관을 위해
이 문서를 수정할 수 있다.
- 간단해진 설정
- 혼란을 주던 많은 지시어들이 간단해졌다. 자주 혼란을
주던
Port
와 BindAddress
지시어는
없어지고 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 문법을 사용할 수 있다.
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류 데이터베이스를 지원한다.