Apache HTTP Server Version 2.5

Apache HTTP Server가 특정 주소와 포트에서 수신하도록 설정합니다.
| 관련된 모듈 | 관련된 지시어 |
|---|---|
httpd는 시작할 때 로컬 머신의 특정 포트와 주소에 연결(bind)하고
들어오는 요청을 기다립니다. 기본적으로 머신의 모든 주소에서
수신합니다. 그러나 특정 포트에서만 수신하거나, 선택한 주소에서만
수신하거나, 두 가지를 조합하도록 설정해야 할 수 있습니다. 이 기능은
httpd가 서로 다른 IP 주소, 호스트명, 포트에 어떻게
응답할지 결정하는 가상호스트 기능과 함께
사용하는 경우가 많습니다.
Listen 지시어는
서버가 지정한 포트 또는 주소와 포트 조합에서만 들어오는 요청을
받아들이도록 합니다. Listen
지시어에 포트 번호만 지정하면 서버는 모든 인터페이스에서 해당
포트를 수신합니다. IP 주소와 포트를 함께 지정하면 서버는 해당
포트와 인터페이스에서 수신합니다. 여러 개의
Listen 지시어를 사용하여
수신할 주소와 포트를 여러 개 지정할 수 있습니다. 서버는 나열된
주소와 포트에서 들어오는 모든 요청에 응답합니다.
예를 들어, 모든 인터페이스에서 80번 포트와 8000번 포트 모두에서 연결을 받아들이려면 다음과 같이 설정합니다:
Listen 80 Listen 8000
한 인터페이스에서는 80번 포트로, 다른 인터페이스에서는 8000번 포트로 연결을 받아들이려면 다음과 같이 설정합니다:
Listen 192.0.2.1:80 Listen 192.0.2.5:8000
IPv6 주소는 다음 예와 같이 대괄호로 감싸야 합니다:
Listen [2001:db8::a00:20ff:fea7:ccea]:80
httpd를 재시작할 때 Listen
지시어의 변경 사항에 대해 특별히 주의해야 합니다. 재시작 중에 httpd는
서버에 대한 새로운 연결 시도에서 "Connection refused" 오류가 발생하지
않도록 (원래 설정대로) 포트를 바인딩한 상태로 유지합니다. 사용 중인
Listen 지시어가 이전 설정과
충돌하도록 변경되면 설정이 실패하고 서버가 종료됩니다.
예를 들어, 다음 설정에서:
Listen 127.0.0.1:80
다음과 같이 변경하면 실패할 수 있습니다. 모든 주소에서 80번 포트에 바인딩하는 것이 127.0.0.1에서만 80번 포트에 바인딩하는 것과 충돌하기 때문입니다.
Listen 80
이러한 설정 변경을 적용하려면 서버를 중지한 후 다시 시작해야 합니다.
점점 더 많은 플랫폼이 IPv6를 구현하고 있으며, APR은 이러한 플랫폼 대부분에서 IPv6를 지원하므로 httpd가 IPv6 소켓을 할당하고 IPv6를 통해 전송된 요청을 처리할 수 있습니다.
httpd 관리자에게 복잡한 요소 중 하나는 IPv6 소켓이 IPv4
연결과 IPv6 연결을 모두 처리할 수 있는지 여부입니다. IPv6
소켓으로 IPv4 연결을 처리하려면 IPv4 매핑 IPv6 주소를
사용하는데, 대부분의 플랫폼에서는 기본적으로 허용되지만
FreeBSD, NetBSD, OpenBSD에서는 해당 플랫폼의 시스템 전체
정책에 맞추어 기본적으로 허용되지 않습니다. 기본적으로
허용되지 않는 시스템에서는 특별한 configure
매개변수로 httpd의 이 동작을 변경할 수 있습니다.
반면에 Linux와 Tru64 같은 일부 플랫폼에서는 IPv6와 IPv4를
모두 처리하는 유일한 방법이 매핑 주소를
사용하는 것입니다. httpd가 최소한의 소켓으로 IPv4와
IPv6 연결을 모두 처리하도록 하려면 IPv4 매핑 IPv6 주소를
사용해야 하며, --enable-v4-mapped
configure 옵션을 지정하십시오.
--enable-v4-mapped는 FreeBSD, NetBSD, OpenBSD를
제외한 모든 플랫폼에서 기본값이므로, 아마도 여러분의 httpd는
이렇게 빌드되었을 것입니다.
플랫폼과 APR의 지원 여부에 관계없이 httpd가 IPv4 연결만
처리하도록 하려면 다음 예와 같이 모든
Listen 지시어에
IPv4 주소를 지정하십시오:
Listen 0.0.0.0:80 Listen 192.0.2.1:80
플랫폼이 지원하고 httpd가 별도의 소켓에서 IPv4와 IPv6
연결을 처리하도록 하려면 (즉, IPv4 매핑 주소를 비활성화하려면)
--disable-v4-mapped
configure 옵션을 지정하십시오.
--disable-v4-mapped는 FreeBSD, NetBSD,
OpenBSD에서 기본값입니다.
Listen의 선택적인
두 번째 protocol 인수는 대부분의 설정에서 필요하지
않습니다. 지정하지 않으면 443번 포트에는 https가,
다른 모든 포트에는 http가 기본값으로 사용됩니다.
프로토콜은 어떤 모듈이 요청을 처리할지 결정하고,
AcceptFilter 지시어로
프로토콜별 최적화를 적용하는 데 사용됩니다.
비표준 포트에서 실행하는 경우에만 프로토콜을 설정하면 됩니다.
예를 들어, 8443번 포트에서 https 사이트를 실행하는
경우:
Listen 192.170.2.1:8443 https
Listen 지시어는
가상호스트를 구현하지 않으며, 주 서버가 어떤 주소와 포트에서
수신할지만 지정합니다.
<VirtualHost>
지시어를 사용하지 않으면 서버는 받아들인 모든 요청에 대해
동일하게 동작합니다. 그러나
<VirtualHost>를
사용하여 하나 이상의 주소나 포트에 대해 다른 동작을 지정할 수
있습니다. 가상호스트를 구현하려면 먼저 서버가 사용할 주소와
포트를 수신하도록 설정해야 합니다. 그런 다음 지정한 주소와
포트에 대해
<VirtualHost>
섹션을 만들어 이 가상호스트의 동작을 설정해야 합니다. 서버가
수신하지 않는 주소와 포트에 대해
<VirtualHost>를
설정하면 접근할 수 없다는 점에 주의하십시오.