Apache 이름 기반 가상 호스트의 ServerName 와일드 카드?


16

LAN에서 아파치 이름 기반 가상 호스팅을 위해 DNS 서버에 '가짜'TLD를 여러 개 설정했습니다. 우분투 10.04 LAMP 서버에서 대량 가상 호스팅 (예 : VirtualDocumentRoot)과 이것을 결합하고 싶습니다.

그러나 올바른 vhost를 선택할 수는 없습니다!

다음은 Apache 구성에 대한 요약입니다.

NameVirtualHost 10.10.0.205

<VirtualHost 10.10.0.205>
   ServerName *.test
   VirtualDocumentRoot /var/www/%-3.0.%-2/test/%1/
   CustomLog /var/log/apache2/access.log vhost_combined
</VirtualHost>

<VirtualHost 10.10.0.205>
   ServerName *.dev
   VirtualDocumentRoot /var/www/%-3.0.%-2/dev/%1/
   CustomLog /var/log/apache2/access.log vhost_combined
</VirtualHost>

www.domain.com.dev 와 같은 호스트 이름 은 10.10.0.205로 올바르게 확인되지만 항상 가장 가까운 호스트 대신 최상위 호스트를 선택합니다.

아파치는 주어진 IP의 최상위 호스트로 기본 설정하기 전에 먼저 ServerName과 일치 시키려한다는 인상을 받았습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 아니면 이것이 불가능하며 각 TLD마다 다른 IP를 사용해야합니까?

apachectl -S 출력 (트리밍) :

10.10.0.205:*          is a NameVirtualHost
    default server *.test
    port * namevhost *.test
    port * namevhost *.dev

답변:


40

혼자가 ServerAlias아닌을 사용하십시오 ServerName.

ServerName somename.dev

ServerAlias *.dev


2
최신 아파치 버전은 더 이상 ServerName에 와일드 카드를 허용하지 않으며 대신 ServerAlias를 사용하라는 오류가 표시됩니다.
Quentin Skousen

대박. 이것은 빠르고 요점입니다. 데프는 시간을 절약했다. 감사.
Art Geigel

4

이것이 도움이 될 수 있다면 약간의 Mo 답변을 완성하십시오.

ServerAlias의 와일드 카드는 다음과 같은 부분 도메인 이름에서도 작동합니다.

ServerName somename.dev

ServerAlias *-mysite.dev

그것은 최근에 내 인생 ^^ 저장 (각 서브 응용 프로그램에 대한 하위 도메인을 가진 주요 사이트를 같은 admin-somename.dev, bo-somename.dev, api-somename.dev...)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.