Linux

[Linux] Apache 버추얼 호스트 설정 httpd-vhosts.conf

thdwldud 2025. 11. 28. 22:29

httpd-vhosts.conf

  • IP 주소 하나에 여러 도메인을 사용하는 버추얼 호스트 설정할 때 사용하는 파일
  • * 부분에 웹 서버로 사용 중인 IP 주소를 설정하고 항목에 맞게 기재하면 됨
  • 이 파일을 사용하려면 httpd.conf 파일에서 두 곳을 활성화(# 주석 제거)해야 함
    • LoadModule 항목에서 mod_vhost_alais.so
    • Include 항목에서 httpd-vhosts.conf

기본 구성

  • 도메인 하나당 하나의 <VirtualHost *:80>~</VirtualHost> 를 사용하면 됨
<VirtualHost *:80>
	ServerAdmin webmaster@dummy-host.example.com
	DocumentRoot "/usr/local/apache/docs/dummy-host.example.com"
	ServerName dummy-host.example.com
	ServerAlias www.dummy-host.example.com
	ErrorLog "logs/dummy-host.example.com-error_log"
	CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>
<VirtualHost *:80>
	ServerAdmin webmaster@dummy-host2.example.com
	DocumentRoot "/usr/local/apache/docs/dummy-host2.example.com"
	ServerName dummy-host2.example.com
	ServerAlias dummy-host2.example.com
	ErrorLog "logs/dummy-host2.example.com-error_log"
	CustomLog logs/dummy-host2.example.com-access_log common
</VirtualHost>

 

주요 항목 설명

  • <VirtualHost *:80>~</VirtualHost>
    • 가상 호스트를 지정하는 태그. *에 IP주소를 설정하고 가상 호스트 관련 설정을 함
  • ServerAdmin webmaster@dummy-host.example.com
    • 해당 도메인을 관리하는 관리자 이메일 주소를 적는 부분
  • DocumentRoot "/usr/local/apache/docs/dummy-host.example.com"
    • 기본 웹 문서가 위치하는 디렉터리를 적음
  • ServerName dummy-host.example.com
    • 도메인을 적음
  • ServerAlias www.dummy-host.example.com
    • 지정한 기본 도메인 이외에 또 다른 호스트네임 도메인을 적을 때 사용. 조회하는 서브 도메인에 대하여 resolving 되어야 함. 보통 ServerName 항목과 연동해서 사용
    • ServerName www.linux.co.kr
    • ServerAlias linux.co.kr
  • ErrorLog "logs/dummy-host.example.com-error_log"
    • 에러 로그를 기록할 파일을 적음
  • CustomLog logs/dummy-host.example.com-access_log common
    • 접속 기록 등 일반적인 로그를 기록할 파일을 적음

 

사용 예

  • 서버의 IP주소가 203.247.50.224, 주 도메인은 linux.com, 추가로 flower.co.kr 도메인을 사용하는 경우
<VirtualHost 203.247.50.224:80>
	ServerAdmin posein@linux.com
	DocumentRoot /usr/local/apache/htdocs
	ServerName www.linux.com
	ServerAlias linux.com
	ErrorLog "logs/linux.com-error_log"
	CustomLog "logs/linux.com-access_log" common
</VirtualHost>
<VirtualHost 203.247.50.224:80>
	ServerAdmin flower@flower.co.kr
	DocumentRoot "/home/flower/public_html"
	ServerName www.flower.co.kr
	ErrorLog "logs/flower.co.kr-error_log"
	CustomLog "logs/flower.co.kr-access_log" common
</VirtualHost>

 

💡위치 / 옵션 찾기

버추얼 호스트 or 여러 도메인 or 추가 도메인

  • vhost 이라는건 암기!

httpd-conf 파일 위치

  • find / -name httpd.conf
    • /usr/local/apache/conf/httpd.conf

httpd.conf 파일 내 활성화 항목

  • cat /usr/local/apache/conf/httpd.conf | grep vhost 또는 egrep 'vhost' /usr/local/apache/conf/httpd.conf
    • LoadModule vhost_alias_module modules/mod_vhost_alias.so
    • Includ conf/extra/httpd-vhosts.conf

httpd-vhosts.conf 파일 위치

  • find / -name httpd-vhosts.conf
    • /usr/local/apache/conf/extra/httpd-vhosts.conf

httpd-vhosts.conf 파일 설정

  • vi /usr/local/apache/conf/extra/httpd-vhosts.conf
    • <VirtualHost 아이피:80>~</VirtualHost>
    • ServerAdmin 관리자이메일
    • DocumnetRoot "기본_웹문서_위치_디렉터리"
    • ServerName 도메인
    • ServerAlias 다른_호스트_네임_도메인
    • ErrorLog 에러_로그_기록_파일
    • CustomLog 일반_로그_기록_파일