SW/리눅스

Ubuntu 20.04 : Apache Virtual Hosts 설정 방법, 예제, 명령어

얇은생각 2022. 10. 22. 07:30
반응형

가상 호스트는 단일 서버에서 둘 이상의 웹 사이트를 실행할 수 있는 Apache 구성 지시문입니다. 가상 호스트를 사용하면 사이트 문서 루트(웹 사이트 파일이 들어 있는 디렉토리)를 지정하고, 각 사이트에 대해 별도의 보안 정책을 작성하며, 서로 다른 SSL 인증서를 사용하는 등의 작업을 수행할 수 있습니다.

이 자료에서는 Ubuntu 20.04에서 Apache Virtual Host를 설정하는 방법에 대해 설명합니다.

 

 

Ubuntu 20.04 : Apache Virtual Hosts 설정 방법, 예제, 명령어

 

 

필수 구성 요소

가이드를 계속 진행하기 전에 다음 요구 사항을 충족했는지 확인하십시오.

 

- 공용 서버 IP를 가리키는 하나 이상의 도메인 이름입니다.

- Ubuntu 시스템에 Apache가 설치되어 있습니다.

- 루트 또는 sudo 권한이 있는 사용자로 로그인합니다.

 

 

디렉토리 구조 생성

문서 루트는 도메인 이름의 웹 사이트 파일이 저장되고 요청에 응답하여 서비스되는 디렉토리입니다. 문서 루트를 원하는 위치로 설정할 수 있습니다. 이 예에서는 다음 디렉토리 구조를 사용합니다.

/var/www/
├── domain1.com
│   └── public_html
├── domain2.com
│   └── public_html

 

 

서버에 호스트된 각 도메인의 문서 루트는 /var/ww/<domain_name>/public_html으로 설정됩니다.

도메인의 루트 디렉토리를 만드는 것부터 시작합니다.

sudo mkdir -p /var/www/domain1.com/public_html

 

 

또한 도메인 문서 루트 디렉토리 내에 index.html 파일을 작성하여 브라우저에서 도메인을 방문할 때 표시됩니다.

# /var/www/domain1.com/public_html/index.html

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Welcome to domain1.com</title>
  </head>
  <body>
    <h1>Success! domain1.com home page!</h1>
  </body>
</html>

 

 

위의 명령은 sudo 사용자로 실행되므로 새로 생성된 파일과 디렉토리는 루트가 소유합니다. 사용 권한 문제를 방지하려면 도메인 문서 루트 디렉토리와 디렉토리 내의 모든 파일의 소유권을 apache 사용자(ww-data)로 변경하십시오.

sudo chown -R www-data: /var/www/domain1.com

 

 

 

가상 호스트 생성

Ubuntu 시스템에서 Apache Virtual Host 구성 파일은 /etc/apache2/sites 사용 가능한 디렉토리에 있습니다. Apache가 시작 시 읽은 /etc/apache2/sites 사용 디렉터리에 대한 심볼 링크를 생성하여 실행할 수 있습니다.

선택한 텍스트 편집기를 열고 다음과 같은 기본 가상 호스트 구성 파일을 생성합니다.

# /etc/apache2/sites-available/domain1.com.conf

<VirtualHost *:80>
    ServerName domain1.com
    ServerAlias www.domain1.com
    ServerAdmin webmaster@domain1.com
    DocumentRoot /var/www/domain1.com/public_html

    <Directory /var/www/domain1.com/public_html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/domain1.com-error.log
    CustomLog ${APACHE_LOG_DIR}/domain1.com-access.log combined
</VirtualHost>

 

 

ServerName: 이 가상 호스트 구성에 대해 일치해야 하는 도메인입니다. 도메인 이름이어야 합니다.

ServerAlias: 이 가상 호스트에 대해 일치해야 하는 다른 모든 도메인 또는 하위 도메인(예: www 하위 도메인)입니다.

DocumentRoot: Apache가 도메인 파일을 처리할 디렉터리입니다.

Options: 이 지시문은 특정 디렉토리에서 사용할 수 있는 서버 기능을 제어합니다.

    Indexes: 디렉터리 목록을 금지합니다.

    FollowSymLinks: 이 옵션을 실행하면 Apache는 심볼릭 링크를 따릅니다.

AllowOverride: .htaccess 파일에 선언된 지시문이 구성 지시문을 재정의할 수 있도록 지정합니다.

ErrorLog, CustomLog: 로그 파일의 위치를 지정합니다.

 

구성 파일의 이름을 원하는 대로 지정할 수 있지만 도메인 이름을 가상 호스트 구성 파일의 이름으로 사용하는 것이 가장 좋습니다.

새 가상 호스트 파일을 사용하도록 설정하려면 가상 호스트 파일에서 사이트 사용 디렉토리로 심볼 링크를 만드는 a2ensite 도우미 스크립트를 사용합니다.

sudo a2ensite domain1.com

 

 

다른 옵션은 다음과 같이 심볼 링크를 수동으로 생성하는 것입니다.

sudo ln -s /etc/apache2/sites-available/domain1.com.conf /etc/apache2/sites-enabled/

 

 

완료되면 다음과 같은 구문 오류를 테스트합니다.

오류가 없으면 다음 출력이 표시됩니다.

sudo apachectl configtest

# Syntax OK

 

 

Apache 서비스를 재시작하여 변경 내용을 적용합니다.

sudo systemctl restart apache2

 

 

마지막으로 모든 것이 예상대로 작동하는지 확인하려면 브라우저에서 http://domain1.com을 여십시오. 그러면 index.message 페이지의 내용이 표시됩니다.

단일 Ubuntu 서버에서 여러 도메인을 호스팅하는 Apache 가상 호스트 구성을 생성하는 방법을 배웠습니다.

위에서 설명한 단계를 반복하여 모든 도메인에 대해 추가 가상 호스트를 만듭니다.

반응형