Apache Virtual Host를 사용하면 단일 시스템에서 둘 이상의 웹 사이트를 실행할 수 있습니다. 가상 호스트를 사용하면 사이트 문서 루트(웹 사이트 파일이 들어 있는 디렉토리)를 지정하고, 각 사이트에 대해 별도의 보안 정책을 작성하며, 서로 다른 SSL 인증서를 사용하는 등의 작업을 수행할 수 있습니다.
이 자료에서는 Debian 10 서버에서 Apache Virtual Host를 설정하는 방법에 대해 설명합니다.
필수 구성 요소
이 튜토리얼을 계속하기 전에 다음 요구 사항을 충족했는지 확인하십시오.
- 공용 서버 IP를 가리키는 도메인 이름입니다.
- CentOS 시스템에 Apache가 설치되어 있습니다.
- 루트 또는 sudo 권한이 있는 사용자로 로그인합니다.
디렉토리 구조를 작성
문서 루트는 요청에 대한 응답으로 도메인 이름의 웹 사이트 파일이 저장되고 제공되는 디렉토리입니다. 문서 루트는 원하는 위치로 설정할 수 있습니다.
다음 디렉토리 구조를 사용합니다.
/var/www/
├── domain1.com
│ └── public_html
├── domain2.com
│ └── public_html
├── domain3.com
│ └── public_html
서버에 호스트된 각 도메인의 문서 루트는 /var/ww/<domain_name>/public_html으로 설정됩니다.
첫 번째 도메인인 example.com에 대한 문서 루트 디렉토리를 만드는 것부터 시작하겠습니다.
sudo mkdir -p /var/www/example.com/public_html
또한 도메인 문서 루트 디렉토리 내에 index.html 파일을 만들어 브라우저에서 도메인을 방문할 때 표시됩니다.
즐겨찾는 텍스트 편집기를 열고 새 파일을 만든 후 다음 파일을 붙여넣습니다.
# /var/www/example.com/public_html/index.html
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Welcome to example.com</title>
</head>
<body>
<h1>Success! example.com home page!</h1>
</body>
</html>
위의 명령은 sudo 사용자로 실행되므로 새로 생성된 파일과 디렉토리는 루트가 소유합니다. 사용 권한 문제를 방지하려면 도메인 문서 루트 디렉토리와 디렉토리 내의 모든 파일의 소유권을 apache 사용자(ww-data)로 변경하십시오.
sudo chown -R www-data: /var/www/example.com
가상 호스트를 생성
Debian 시스템에서 Apache Virtual Host 구성 파일은 /etc/apache2/sites 사용 가능한 디렉토리에 있으며 시작 시 Apache에서 읽는 /etc/apache2/sites 사용 디렉토리에 대한 심볼 링크를 생성하여 활성화할 수 있습니다.
선택한 텍스트 편집기를 열고 다음과 같은 기본 가상 호스트 구성 파일을 생성합니다.
# /etc/apache2/sites-available/example.com.conf
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ServerAdmin webmaster@example.com
DocumentRoot /var/www/example.com/public_html
<Directory /var/www/example.com/public_html>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
</VirtualHost>
ServerName: 이 가상 호스트 구성에 대해 일치해야 하는 도메인입니다. 도메인 이름이어야 합니다.
ServerAlias: 이 가상 호스트에 대해서도 일치해야 하는 다른 모든 도메인 또는 하위 도메인(일반적으로 www 하위 도메인)입니다.
DocumentRoot: Apache가 도메인 파일을 처리할 디렉터리입니다.
Options: 이 지시문은 특정 디렉토리에서 사용할 수 있는 서버 기능을 제어합니다.
-Indexes: 디렉터리 목록을 금지합니다.
FollowSymLinks: 이 옵션을 실행하면 Apache는 심볼릭 링크를 따릅니다.
AllowOverride: .htaccess 파일에 선언된 지시문이 구성 지시문을 재정의할 수 있도록 지정합니다.
ErrorLog, CustomLog: 로그 파일의 위치를 지정합니다.
필요에 따라 파일을 편집하고 저장합니다.
원하는 대로 구성 파일의 이름을 지정할 수 있습니다. 도메인 이름을 가상 호스트 구성 파일의 이름으로 사용하는 것이 가장 좋습니다.
새 가상 호스트 파일을 사용하도록 설정하려면 가상 호스트 파일에서 사이트 사용 디렉토리로 심볼 링크를 만드는 a2ensite 도우미 스크립트를 사용합니다.
sudo a2ensite example.com
다른 옵션은 다음과 같이 심볼 링크를 수동으로 생성하는 것입니다.
sudo ln -s /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-enabled/
구성이 활성화되면 구문이 올바른지 테스트합니다.
sudo apachectl configtest
# Syntax OK
오류가 없으면 다음 출력이 표시됩니다.
apache2 서비스를 다시 시작하여 변경 내용을 적용합니다.
sudo systemctl restart apache2
모든 것이 예상대로 작동하는지 확인하려면 즐겨찾는 브라우저에서 http://example.com을 열면 다음과 같은 내용을 볼 수 있습니다.
이 튜토리얼에서는 Debian 10, Buster에서 Apache 가상 호스트 구성을 생성하는 방법을 보여드렸습니다. 위에서 설명한 단계를 반복하여 모든 도메인에 대해 추가 가상 호스트를 생성할 수 있습니다.
SSL 인증서로 웹 사이트를 보호하려는 경우 무료 Letscrypt SSL 인증서를 생성하고 설치할 수 있습니다.
참조
https://linuxize.com/post/how-to-set-up-apache-virtual-hosts-on-debian-10/
'SW > 리눅스' 카테고리의 다른 글
Linux : CentOS 8 : FFmpeg 설치, 사용 예제, 방법, 명령어 (0) | 2022.07.27 |
---|---|
Regex : Grep : 정규식 표현 사용 방법, 예제, 명령어 (0) | 2022.07.26 |
Linux : CentOS 8 : GCC (Development Tools) 설치 방법, 예제, 명령어 (0) | 2022.07.24 |
Linux : chmod 777 의미 이해 방법, 예제, 명령어 (0) | 2022.07.23 |
Linux : Debian 10 : Elasticsearch 설치 방법, 예제, 명령어 (0) | 2022.07.22 |