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에는 지원되지않고, 파일시스템 접근에 전과 같이 시스템의
지역 코드페이지를 사용한다.
이 프록시 모듈은 새로운 필터 구조를 이용하고 더 믿을만한
HTTP/1.1 프록시를 구현하기위해 완전히 재작성되었다. 추가로
새로운 <Proxy>
설정 섹션은 프록시 설정을 더 쉽게 (그리고 내부적으로 더
빠르게) 만든다. 과거 <Directory "proxy:...">
설정은 이제 지원하지 않는다. 모듈은 proxy_connect,
proxy_ftp, proxy_http와 같이
지원하는 프로토콜 별로 나눠졌다.
새로운 ForceLanguagePriority
지시어는 클라이언트가 NOT ACCEPTABLE이나 MULTIPLE CHOICES
응답 대신 모든 경우 한 문서를 받음을 보장한다. 추가로
협상 알고리즘과 MultiViews 알고리즘이 더 일관된 결과를
내도록 수정되었고, 문서 내용을 포함할 수 있는 새로운 형식의
type map이 추가되었다.
새로운 지시어를 사용하여 SSI 요소의 기본 시작 태그와
마침 태그를 변경할 수 있고, 오류와 시간형식을 SSI 문서외에
주 설정파일에서도 설정할 수 있게 되었다. mod_include에서 (이제
Perl 정규표현식 문법으로) 정규표현식 파싱과 그룹의
결과를 mod_include의 $0
... $9 변수로 얻을 수 있다.