1.7. Apache 이름 기반 가상 호스트 구성
이름 기반 가상 호스트를 사용하면 Apache가 서버의 IP 주소로 해석되는 다양한 도메인에 다양한 콘텐츠를 제공할 수 있습니다.
별도의 문서 루트 디렉터리를 사용하여 example.com
및 example.net
도메인 모두에 가상 호스트를 설정할 수 있습니다. 두 가상 호스트는 모두 정적 HTML 콘텐츠를 제공합니다.
사전 요구 사항
클라이언트 및 웹 서버는
example.com
및example.net
도메인을 웹 서버의 IP 주소로 확인합니다.이러한 항목을 DNS 서버에 수동으로 추가해야 합니다.
프로세스
httpd
패키지를 설치합니다.yum install httpd
# yum install httpd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/httpd/conf/httpd.conf
파일을 편집합니다.example.com
도메인에 다음 가상 호스트 구성을 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이러한 설정은 다음을 구성합니다.
-
<VirtualHost *:80>
지시문의 모든 설정은 이 가상 호스트에 따라 다릅니다. -
DocumentRoot
는 가상 호스트의 웹 콘텐츠 경로를 설정합니다. ServerName
은 이 가상 호스트가 콘텐츠를 제공하는 도메인을 설정합니다.여러 도메인을 설정하려면
ServerAlias
매개 변수를 구성에 추가하고 이 매개 변수에서 공백으로 구분된 추가 도메인을 지정합니다.-
CustomLog
는 가상 호스트의 액세스 로그 경로를 설정합니다. ErrorLog
는 가상 호스트의 오류 로그 경로를 설정합니다.참고Apache는
ServerName
및ServerAlias
매개 변수에 설정된 도메인과 일치하지 않는 요청에도 구성에 있는 첫 번째 가상 호스트를 사용합니다. 여기에는 서버의 IP 주소로 전송된 요청도 포함됩니다.
-
example.net
도메인에 대해 유사한 가상 호스트 구성을 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 두 가상 호스트 모두에 대한 문서 루트를 생성합니다.
mkdir /var/www/example.com/ mkdir /var/www/example.net/
# mkdir /var/www/example.com/ # mkdir /var/www/example.net/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /var/www/
내에 없는DocumentRoot
매개변수에서 경로를 설정한 경우 두 문서 루트에서httpd_sys_content_t
컨텍스트를 설정합니다.semanage fcontext -a -t httpd_sys_content_t "/srv/example.com(/.*)?" restorecon -Rv /srv/example.com/ semanage fcontext -a -t httpd_sys_content_t "/srv/example.net(/.\*)?" restorecon -Rv /srv/example.net/
# semanage fcontext -a -t httpd_sys_content_t "/srv/example.com(/.*)?" # restorecon -Rv /srv/example.com/ # semanage fcontext -a -t httpd_sys_content_t "/srv/example.net(/.\*)?" # restorecon -Rv /srv/example.net/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이러한 명령은
/srv/example.com/
및/srv/example.net/
디렉터리에httpd_sys_content_t
컨텍스트를 설정합니다.restorecon
명령을 실행하려면policycoreutils-python-utils
패키지를 설치해야 합니다.firewalld
를 사용하는 경우 로컬 방화벽에서 포트80
을 엽니다.firewall-cmd --permanent --add-port=80/tcp firewall-cmd --reload
# firewall-cmd --permanent --add-port=80/tcp # firewall-cmd --reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow httpd
서비스를 활성화하고 시작합니다.systemctl enable --now httpd
# systemctl enable --now httpd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
각 가상 호스트의 문서 루트에 다른 예제 파일을 생성합니다.
echo "vHost example.com" > /var/www/example.com/index.html echo "vHost example.net" > /var/www/example.net/index.html
# echo "vHost example.com" > /var/www/example.com/index.html # echo "vHost example.net" > /var/www/example.net/index.html
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
브라우저를 사용하고
http://example.com
에 연결합니다. 웹 서버는example.com
가상 호스트의 예제 파일을 보여줍니다. -
브라우저를 사용하고
http://example.net
에 연결합니다. 웹 서버는example.net
가상 호스트의 예제 파일을 보여줍니다.