1.3에서 2.0으로 업그레이드 - Apache HTTP Server

Apache Server 2.0

Apache HTTP Server Version 2.0

<-

1.3에서 2.0으로 업그레이드

우리는 기존 아파치 사용자가 업그레이드하는 것을 돕기위해 중요한 정보를 알려주는 문서를 제공한다. 이 문서는 간단한 요약이므로, 새로운 기능 문서나 src/CHANGES 파일에서 정보를 찾아봐야 한다.

top

컴파일시 구성 변화

top

실행시 설정 변화

  • Apache 1.3에서 서버 핵심에 있었던 많은 지시어들이 이제는 MPM에 있다. 서버가 Apache 1.3과 최대한 비슷하게 동작하길 바란다면 prefork MPM을 선택해야 한다. 다른 MPM은 다른 지시어를 사용하여 프로세스 생성과 요청의 처리를 조절한다.
  • proxy 모듈은 HTTP/1.1에 맞추어 수정되었다. 중요한 변화중 하나는 이제 프록시 접근제어가 <Directory proxy:> 블록이 아니라 <Proxy> 블록에 위치하는 점이다.
  • 몇몇 모듈에서 PATH_INFO (진짜 경로명 뒤에 나오는 경로 정보) 처리 방식이 변경되었다. 전에 핸들러였지만 이제 필터로 구현되는 모듈은 더 이상 PATH_INFO가 있는 요청을 받아들이지 못한다. INCLUDESPHP와 같은 필터는 core 핸들러 위에 구현되기때문에 PATH_INFO가 있는 요청을 거부한다. core 핸들러가 PATH_INFO가 있는 요청을 받아들이고 server-side include에서 PATH_INFO를 사용하게 하려면, AcceptPathInfo 지시어를 사용해야 한다.
  • CacheNegotiatedDocs 지시어는 이제 아규먼트로 onoff를 받는다. 기존의 CacheNegotiatedDocsCacheNegotiatedDocs on으로 수정해야 한다.
  • ErrorDocument 지시어는 더이상 메세지를 나타내는 아규먼트 앞에 따옴표를 사용하지 않는다. 대신 쌍따옴표로 메세지를 묶어야 한다. 예를 들어 과거

    ErrorDocument 403 "Some Message

    는 다음과 같이 수정해야 한다.

    ErrorDocument 403 "Some Message"

    두번째 아규먼트가 유효한 URL이나 경로명이 아니라면 메세지로 간주한다.
  • AccessConfigResourceConfig 지시어는 사라졌다. 기존에 사용하던 지시어는 같은 기능을 하는 Include 지시어로 대체할 수 있다. 과거에 설정파일에서 이 지시어들을 사용하지않고 이 지시어들의 기본값을 사용했다면, http.confInclude conf/access.confInclude conf/srm.conf를 추가할 필요가 있다. 아파치가 이전 지시어와 같은 순서로 설정파일을 읽게하려면 Include 지시어를 httpd.conf 끝에 두고, srm.confaccess.conf 앞에 나와야 한다.
  • BindAddressPort 지시어는 사라졌다. 더 유연한 Listen 지시어가 같은 기능을 한다.
  • Apache-1.3에서 Port는 자기참조 URL의 포트 번호를 설정하는 일도 했다. Apache-2.0에서 이 기능은 새로운 ServerName으로 한다. 한 지시어에 호스트명 자기참조 URL을 위한 포트 번호를 같이 설정할 수 있다.
  • ServerType 지시어는 사라졌다. 요청을 서비스하는 방법은 이제 MPM 선택에 달렸다. 현재 inetd에서 시작하도록 설계된 MPM은 없다.
  • AgentLog, RefererLog, RefererIgnore 지시어를 제공한 mod_log_agentmod_log_referer 모듈이 없어졌다. agent 로그와 referer 로그는 mod_log_configCustomLog 지시어를 사용하여 계속 제공된다.
  • AddModuleClearModuleList 지시어는 사라졌다. 이 지시어들은 모듈을 올바른 순서로 활성화하려고 사용했다. 새로운 Apache 2.0 API는 모듈이 활성화되는 순서를 명시적으로 지정할 수 있어서, 이 지시어들이 필요없게 되었다.
  • FancyIndexing 지시어가 없어졌다. IndexOptions 지시어의 FancyIndexing 옵션이 같은 기능을 한다.
  • mod_negotiation의 MultiViews 내용협상이 더 엄격하게 기본파일을 찾는다. 내용협상은 협상가능한 파일 중에서만 선택한다. MultiviewsMatch 지시어를 사용하여 이전과 같이 동작하게 할 수 있다.
  • (2.0.51 버전 이후)

    ErrorHeader 지시어는 잘못된 명칭으로, 이 지시어가 담당한 기능은 Header 지시어로도 가능하다. 원하는 기능을 위해,

    Header always set 어쩌고 저쩌고

    와 같이 설정한다.

top

기타 변화

  • Apache 1.3에서 실험적이였던 mod_auth_digest 모듈이 이제 표준 모듈이 되었다.
  • Apache 1.3에서 실험적이였던 mod_mmap_static 모듈이 mod_file_cache로 대체되었다.
  • 배포본이 완전히 새로 구성되어 더이상 독립된 src 디렉토리가 없다. 대신 소스는 주 배포본 디렉토리 아래 논리적으로 구성되있고, 컴파일한 서버는 다른 디렉토리로 설치된다.
top

제삼자가 만든 모듈

Apache 2.0에서 서버 API가 많이 변경되었다. Apache 1.3 API에 맞춰진 기존 모듈을 수정없이 Apache 2.0에서 사용할 수 없다. 자세한 정보는 개발자 문서를 참고하라.