Apache Virtual Host를 사용하면 단일 시스템에서 둘 이상의 웹 사이트를 실행할 수 있습니다. 가상 호스트를 사용하면 사이트 문서 루트(웹 사이트 파일이 들어 있는 디렉토리)를 지정하고, 각 사이트에 대해 별도의 보안 정책을 작성하며, 서로 다른 SSL 인증서를 사용하는 등의 작업을 수행할 수 있습니다.
이 문서에서는 CentOS 8 서버에서 Apache Virtual Host를 설정하는 방법을 설명합니다.
필수 구성 요소
이 튜토리얼을 계속하기 전에 다음 요구 사항을 충족했는지 확인하십시오.
- 공용 서버 IP를 가리키는 도메인 이름입니다.
- CentOS 시스템에 Apache가 설치되어 있습니다.
- 루트 또는 sudo 권한이 있는 사용자로 로그인합니다.
디렉토리 구조 생성
문서 루트는 요청에 대한 응답으로 도메인 이름의 웹 사이트 파일이 저장되고 제공되는 디렉토리입니다. 문서 루트는 원하는 위치로 설정할 수 있습니다.
다음 디렉토리 구조를 사용합니다.
/var/www/
├── example.com
│ └── public_html
├── example2.com
│ └── public_html
├── example3.com
│ └── public_html
서버에서 호스팅될 각 도메인에 대해 /var/www 내에 별도의 디렉토리를 작성합니다. 도메인 디렉토리 내에 도메인 문서 루트 디렉토리가 되고 도메인 웹 사이트 파일을 저장할 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>
사용 권한 문제를 방지하려면 도메인 문서 루트 디렉토리의 소유권을 사용자 apache로 변경하십시오.
sudo chown -R apache: /var/www/example.com
가상 호스트 파일 생성
몇 가지 방법으로 가상 호스트를 설정할 수 있습니다. 모든 Virtual Host Directives를 단일 파일에 추가하거나 각 Virtual Host Directive에 대한 구성 파일을 새로 만들 수 있습니다. 일반적으로 유지관리하기 쉬운 두 번째 방법을 선호합니다.
기본적으로 Apache는 /etc/httpd/conf.d/ 디렉터리에서 .conf로 끝나는 모든 구성 파일을 로드하도록 구성됩니다.
특정 웹 사이트에 대한 가상 호스트를 만들려면 선택한 편집기를 열고 다음과 같은 기본 가상 호스트 구성 파일을 만듭니다.
# /etc/httpd/conf.d/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 /var/log/httpd/example.com-error.log
CustomLog /var/log/httpd/example.com-access.log combined
</VirtualHost>
ServerName: 가상 호스트 구성이 사용될 도메인의 이름입니다. 이것은 당신의 도메인 이름입니다.
ServerAlias: 가상 호스트 구성이 사용될 다른 모든 도메인(예: www 하위 도메인)입니다.
DocumentRoot: Apache가 도메인 파일을 제공하는 디렉터리입니다.
Options: 이 지시문은 디렉토리별 서버 기능을 제어합니다.
- Indexes: 디렉터리 목록을 금지합니다.
- FollowSymLinks: 이 옵션은 웹 서버에 심볼 링크를 따르도록 지시합니다.
AllowOverride: .htaccess 파일에 선언된 지시문이 구성 지시문을 재정의할 수 있도록 지정합니다.
ErrorLog, CustomLog: 로그 파일의 위치입니다.
필요에 따라 파일을 편집하고 저장합니다.
구성 파일 이름은 .conf로 끝나야 합니다. 원하는 대로 구성 파일의 이름을 지정할 수 있습니다. 도메인 이름을 가상 호스트 구성 파일의 이름으로 사용하는 것이 가장 좋습니다.
다음을 사용하여 구성 파일 구문을 테스트합니다.
sudo apachectl configtest
# Syntax OK
오류가 없는 경우 출력은 다음과 같아야 합니다.
새로 생성된 가상 호스트를 활성화하려면 다음을 사용하여 Apache 서비스를 재시작하십시오.
sudo systemctl restart httpd
http://example.com을 열어 모든 것이 예상대로 작동하는지 확인합니다.
이 튜토리얼에서는 CentOS 8에서 Apache 가상 호스트 구성을 만드는 방법을 보여드렸습니다. 위에서 설명한 단계를 반복하고 모든 도메인에 대해 추가 가상 호스트를 만들 수 있습니다.
SSL 인증서로 웹 사이트를 보호하려는 경우 무료 Letscrypt SSL 인증서를 생성하고 설치할 수 있습니다.
참조
https://linuxize.com/post/how-to-set-up-apache-virtual-hosts-on-centos-8/
'SW > 리눅스' 카테고리의 다른 글
Linux : Debian 10 : Elasticsearch 설치 방법, 예제, 명령어 (0) | 2022.07.22 |
---|---|
Linux : tar.xz 압축 풀기, 특정 파일 추출 방법, 예제, 명령어 (0) | 2022.07.21 |
Linux : Debian 10 : Python 3.8 설치 방법, 예제, 명령어 (0) | 2022.07.19 |
Linux : Pkill 명령어, 예제, 사용 방법 (0) | 2022.07.18 |
Linux : CentOS 8 : MongoDB 설치 방법, 예제, 명령어 (0) | 2022.07.16 |