Apache 웹 서버에서 사용되는 VirtualHost 설정

Eunhye Kim·2024년 10월 28일
0

VirtualHost 설정

서로 다른 도메인에 대해 요청을 처리하고, HTTP요청을 리디렉션 하는 역할

<VirtualHost *:80>
    ServerAdmin email@test.com
    ServerName domein@test.com
    DocumentRoot "/www/test"
    ErrorLog "logs/test.com-error_log"
    CustomLog "logs/test.com-access_log" combined env=!not_log
    RewriteEngine on
    RewriteRule (.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</VirtualHost>

코드 분석

1. <VirtualHost *:80>

HTTP포트(80번 포트)에서 domein@test.com 도메인에 대한 가상 호스트를 설정한다.

가상 호스트 설정은(virtualHost)은 하나의 서버에서 여러 개의 웹사이트나 도메인을 운영할 수 있게 해주는 기능. 예를들어 한 서버에서 domein@test.com뿐만 아니라 다른 도메인(admin.domein@test.com)도 같은 서버에서 운영하고 요청을 각 도메인별로 분리해서 처리할 수 있도록 해줌.

<VirtualHost *:80>은 80번 포트(HTTP포트)로 들어오는 요청에 대한 이 가상 호스트 설정을 적용하겠다는 의미.
해당 도메인으로 오는 모든 HTTP 요청을 이 블록 안에서 정의한 설정대로 처리 된다.
따라서 하나의 서버에서 여러 도메인을 사용할 경우, 각 도메인마다 가상 호스트 설정을 추가해줘야함.

2. ServerAdmin email@test.com

email@test.com은 서버 관리자 이메일 주소를 지정하는 설정이다.
만약 웹 서버에 문제가 생기거나 에러가 발생했을 때 에러 메시지와 함께 이메일 주소가 표시될 수 있다.

3. ServerName domein@test.com

가상 호스트의 도메인 이름. 이 도메인에 접근할 때 이 블록이 적용됨.

4. DocumentRoot "/www/test"

웹 사이트의 기본문서.
이 위치에 있는 디렉토리 파일들이 클라이언트에게 서빙된다. (예) HTML, CSS, JavaScript, 이미지 등)이 저장되어 있고, 사용자가 특정 도메인에 접속할 때, 이 폴더의 파일들이 브라우저로 서빙된다.
만약 DocumentRoot "/www/test"이라고 지금 처럼 설정하면 사용자가 domein@test.com에 접속할 때, 서버는 /www/test폴더에서 시작해서 그 안에 있는 파일들을 제공한다.

5. RewriteRule (.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

  • HTTP 요청을 HTTPS로 강제 리다이렉트 한다.
  • (.*)은 모든 요청 경로를 의미하고, %{HTTP_HOST}%{REQUEST_URI}는 요청의 호스트와 경로 정보를 그대로 사용하여 HTTPS URL로 리다이렉트시킨다.
profile
개발에 몰두하며 성장하는 도중에 얻은 인사이트에 희열을 느낍니다.

0개의 댓글