두 개의 다른 도메인을 하나의 IP 주소 (아파치)로 지정하는 방법은 무엇입니까? 호스팅하고 싶습니다. 나는

두 개의 다른 도메인 이름이 있는데, 동일한 개인 호스팅에서 호스팅하고 싶습니다. 나는 그들이 동일한 IP 주소를 가리키고 있지만 내용이 다릅니다 (물론). 어떻게해야합니까? 다른 방법이 있습니까? 이 경우 가장 좋은 방법은 무엇입니까? 감사.



답변

아마도 Apache의 가상 호스팅을 사용하고 싶을 것입니다. 단일 IP 주소에서 많은 도메인을 호스팅하기 위해 잘 지원되는 방법입니다.

http://httpd.apache.org/docs/2.2/vhosts/

특히 이름 기반 가상 호스트 : http://httpd.apache.org/docs/2.2/vhosts/name-based.html


답변

Apache2는 모든 도메인이 동일한 IP 주소로 해석 되더라도 도메인 이름에 따라 다른 컨텐츠를 제공 할 수 있습니다. 각 도메인 이름은 가상 호스트에 의해 처리 되므로 이름 기반 가상 호스트 입니다.

다음은 두 도메인에 대한 샘플 구성입니다.

NameVirtualHost *:80

<VirtualHost *:80>
  ServerName www.yourfirstdomain.tld
  DocumentRoot /www/yourfirstdomain.tld/
</VirtualHost>

<VirtualHost *:80>
  ServerName www.yourseconddomain.tld
  DocumentRoot /www/yourseconddomain.tld/
</VirtualHost>

이름 기반 가상 호스트 지원 에 대한 공식 문서는 여기를 참조하십시오 .

그러나 이것은 HTTPS (HTTP over SSL)가 아닌 일반 HTTP 연결에서만 작동합니다. 이름 기반 가상 호스트는 요청되는 이름을 알고 있지만이 정보는 암호화 된 SSL까지 아파치에서 알 수 없습니다 연결이 설정되었습니다.

HTTPS를 사용하여 설정해야하는 경우 SNI ( Server Name Indication ) ( RFC4366 ) 라는 SSL 프로토콜의 확장에 의존해야합니다 . 기본적으로 SNI 가능 클라이언트 (예 : 웹 브라우저)는 암호화 된 SSL 연결을 설정할 때 추가 일반 텍스트 정보를 추가하여 SSL 연결이 준비되기 전에 요청 된 이름을 서버가 알 수있게합니다.

모든 브라우저가 아직 SNI를 지원하지 않습니다. 글을 쓰는 시점과 위키 백과에 따르면 다음과 같은 것들이 있습니다.

  • Internet Explorer 7 이상, Windows Vista 이상 (XP, IE 8에서도 작동하지 않음)
  • Mozilla Firefox 2.0 이상
  • Opera 8.0 이상 (TLS 1.1 프로토콜을 활성화해야 함)
  • Android에서 Opera Mobile 최소 10.1 베타 버전
  • Chrome (Vista 이상, Chrome 6 이상 XP, Chrome 5.0.342.1 이상 OS X 10.5.7 이상)
  • Safari 2.1 이상 (Mac OS X 10.5.6 이상 및 Windows Vista 이상)
  • Konqueror / KDE 4.7 이상
  • Apple iOS 4.0 이상의 MobileSafari
  • Honeycomb (v3.x) 이상의 Android 기본 브라우저
  • 윈도우 폰 7
  • Maemo의 MicroB

HTTPS를 통해 액세스 할 수있는 여러 이름 기반 가상 호스트를 호스팅하려면 mod_ssl을 활성화하고 위의 예와 유사한 구성을 추가해야합니다.

Listen 443
NameVirtualHost *:443

# Accept connections for these vhosts from non-SNI clients
# Clients without SNI will be handled by the first defined vhost.
# If you only want SNI-enabled client, put on instead
SSLStrictSNIVHostCheck off

<VirtualHost *:443>
  ServerName www.yourfirstdomain.tld
  DocumentRoot /www/yourfirstdomain.tld/
</VirtualHost>

<VirtualHost *:443>
  ServerName www.yourseconddomain.tld
  DocumentRoot /www/yourseconddomain.tld/
</VirtualHost>

SSL을 사용하려면 도메인 용 SSL 인증서를 구매하거나 자동 서명 된 인증서를 생성하고 SSL 연결에 사용하도록 Apache를 구성해야합니다.