VirtualHost 설정은 순서가 민감하다. 먼저 선언된 것일수록 우선순위가 높다.

아래와 같이 www1.google.com과 www2.google.com이 있다고 가정한다.

<VirtualHost *>

ServerName www1.google.com

DocumentRoot /home/www/deploy/google-www1

</VirtualHost>

<VirtualHost *>

ServerName www2.google.com

DocumentRoot /home/www/deploy/google-www2

</VirtualHost>

웹브라우저에서 www1.google.com 요청이 들어오면, 첫번째 VirtualHost에서 처리하게 된다.

www2.google.com 요청이 들어면, 두번째 VirtualHost에서 처리하게 된다.

www3.google.com 을 요청하면, 어떤 ServerName 지시자에도 해당되지 않은 요청이기 때문에 첫번째 VirtualHost에서 처리하게 되어 www1.google.com에서 처리가 된다.

 

특이하게 쓰는 경우에는 어떻게 될까?

아래 예제와 같이 첫번째 VirtualHost와  두번째 VirtualHost의 ServerName으로 선언된 www2.google.com을 ServerAlias로 지정한다.

<VirtualHost *>

ServerName www1.google.com

ServerAlias www2.google.com

DocumentRoot /home/www/deploy/google-www1

</VirtualHost>

<VirtualHost *>

ServerName www2.google.com

DocumentRoot /home/www/deploy/google-www2

</VirtualHost>

www2.google.com을 요청하면, 우선순위가 높은 첫번째 VirtualHost에서 처리하게 되어 www1.google.com에서 처리가 된다.

Posted by '김용환'
,