웹사이트 검색

Ubuntu 14.04 LTS에서 Apache 가상 호스트를 설정하는 방법


소개

Apache 웹 서버는 인터넷에서 웹 콘텐츠를 제공하는 가장 일반적인 방법입니다. 인터넷상의 모든 활성 웹 사이트의 절반 이상을 차지하며 매우 강력하고 유연합니다.

Apache는 기능과 구성 요소를 독립적으로 사용자 지정하고 구성할 수 있는 개별 단위로 나눕니다. 개별 사이트 또는 도메인을 설명하는 기본 단위를 가상 호스트라고 합니다.

이러한 지정을 통해 관리자는 일치 메커니즘을 사용하여 단일 인터페이스 또는 IP에서 떨어져 있는 여러 도메인 또는 사이트를 호스팅하기 위해 하나의 서버를 사용할 수 있습니다. 이것은 단일 VPS에서 둘 이상의 사이트를 호스팅하려는 모든 사람과 관련이 있습니다.

구성된 각 도메인은 방문자를 해당 사이트의 정보가 있는 특정 디렉토리로 안내하며 동일한 서버가 다른 사이트도 담당한다는 것을 나타내지 않습니다. 이 체계는 서버가 로드를 처리할 수 있는 한 소프트웨어 제한 없이 확장할 수 있습니다.

이 가이드에서는 Ubuntu 14.04 VPS에서 Apache 가상 호스트를 설정하는 방법을 안내합니다. 이 과정에서 방문자가 요청하는 도메인에 따라 다른 방문자에게 다른 콘텐츠를 제공하는 방법을 배우게 됩니다.

전제 조건

이 자습서를 시작하기 전에 여기에서 1-4단계에 설명된 대로 루트가 아닌 사용자를 생성해야 합니다.

또한 이 단계를 수행하려면 Apache가 설치되어 있어야 합니다. 아직 수행하지 않은 경우 apt-get을 통해 서버에 Apache를 설치할 수 있습니다.

sudo apt-get update
sudo apt-get install apache2

이 단계가 완료되면 시작할 수 있습니다.

이 가이드의 목적을 위해 내 구성은 example.com용 가상 호스트와 test.com용 가상 호스트를 만듭니다. 이들은 가이드 전체에서 참조되지만 따라가는 동안 자신의 도메인이나 값을 대체해야 합니다.

DigitalOcean으로 도메인 이름을 설정하는 방법을 알아보려면 이 링크를 따르십시오. 사용할 수 있는 도메인이 없는 경우 더미 값을 사용할 수 있습니다.

더미 값을 사용하는 경우 구성을 테스트하기 위해 나중에 로컬 호스트 파일을 편집하는 방법을 보여줍니다. 이렇게 하면 다른 방문자가 도메인 이름을 통해 콘텐츠를 사용할 수 없더라도 가정용 컴퓨터에서 구성을 테스트할 수 있습니다.

1단계 - 디렉터리 구조 만들기

우리가 취할 첫 번째 단계는 방문자에게 제공할 사이트 데이터를 보관할 디렉토리 구조를 만드는 것입니다.

문서 루트(Apache가 제공할 콘텐츠를 찾기 위해 찾는 최상위 디렉토리)는 /var/www 디렉토리 아래의 개별 디렉토리로 설정됩니다. 여기에 우리가 만들 계획인 두 가상 호스트에 대한 디렉토리를 만들 것입니다.

디렉토리 내에서 실제 파일을 보관할 public_html 폴더를 생성합니다. 이것은 호스팅에 약간의 유연성을 제공합니다.

예를 들어 사이트의 경우 다음과 같이 디렉토리를 만들 것입니다.

<예비>

빨간색 부분은 VPS에서 제공하려는 도메인 이름을 나타냅니다.

2단계 - 권한 부여

이제 파일의 디렉토리 구조가 있지만 루트 사용자가 소유하고 있습니다. 일반 사용자가 웹 디렉토리의 파일을 수정할 수 있도록 하려면 다음을 수행하여 소유권을 변경할 수 있습니다.

<예비>

$USER 변수는 "ENTER\를 누를 때 현재 로그인한 사용자의 값을 가져옵니다. 이렇게 함으로써 일반 사용자는 이제 public_html 콘텐츠를 저장할 하위 디렉터리입니다.

또한 페이지가 올바르게 제공될 수 있도록 일반 웹 디렉토리와 여기에 포함된 모든 파일 및 폴더에 대한 읽기 액세스가 허용되도록 권한을 약간 수정해야 합니다.

sudo chmod -R 755 /var/www

이제 웹 서버에 콘텐츠를 제공하는 데 필요한 권한이 있어야 하며 사용자는 필요한 폴더 내에서 콘텐츠를 만들 수 있어야 합니다.

3단계 - 각 가상 호스트에 대한 데모 페이지 생성

디렉토리 구조가 제자리에 있습니다. 제공할 콘텐츠를 만들어 보겠습니다.

우리는 단지 시연을 하러 가는 것이므로 페이지가 매우 간단할 것입니다. 우리는 각 사이트에 대한 index.html 페이지를 만들 것입니다.

example.com부터 시작하겠습니다. 다음을 입력하여 편집기에서 index.html 파일을 열 수 있습니다.

<예비>

이 파일에서 연결된 사이트를 나타내는 간단한 HTML 문서를 만듭니다. 내 파일은 다음과 같습니다.

<예비>

완료되면 파일을 저장하고 닫습니다.

다음을 입력하여 이 파일을 복사하여 두 번째 사이트의 기반으로 사용할 수 있습니다.

<예비>

그런 다음 파일을 열고 관련 정보를 수정할 수 있습니다.

<예비>

이 파일도 저장하고 닫습니다. 이제 가상 호스트 구성을 테스트하는 데 필요한 페이지가 있습니다.

4단계 - 새 가상 호스트 파일 만들기

가상 호스트 파일은 가상 호스트의 실제 구성을 지정하고 Apache 웹 서버가 다양한 도메인 요청에 응답하는 방법을 지정하는 파일입니다.

Apache는 출발점으로 사용할 수 있는 000-default.conf라는 기본 가상 호스트 파일과 함께 제공됩니다. 이를 복사하여 각 도메인에 대한 가상 호스트 파일을 생성할 것입니다.

하나의 도메인으로 시작하여 구성하고 두 번째 도메인에 복사한 다음 필요한 몇 가지 추가 조정을 수행합니다. 기본 Ubuntu 구성에서는 각 가상 호스트 파일이 .conf로 끝나야 합니다.

첫 번째 가상 호스트 파일 만들기

첫 번째 도메인에 대한 파일을 복사하여 시작합니다.

<예비>

루트 권한으로 편집기에서 새 파일을 엽니다.

<예비>

파일은 다음과 같이 표시됩니다(파일에 더 쉽게 접근할 수 있도록 여기에서 주석을 제거했습니다).

<예비>

보시다시피 여기는 별로 없습니다. 여기에서 첫 번째 도메인에 대한 항목을 사용자 지정하고 몇 가지 추가 지시문을 추가합니다. 이 가상 호스트 섹션은 기본 HTTP 포트인 포트 80에서 이루어진 모든 요청과 일치합니다.

먼저 ServerAdmin 지시문을 사이트 관리자가 이메일을 받을 수 있는 이메일로 변경해야 합니다.

<예비>

그런 다음 두 가지 지시문을 추가해야 합니다. ServerName이라고 하는 첫 번째는 이 가상 호스트 정의와 일치해야 하는 기본 도메인을 설정합니다. 귀하의 도메인일 가능성이 높습니다. ServerAlias라고 하는 두 번째는 기본 이름인 것처럼 일치해야 하는 추가 이름을 정의합니다. 이는 www와 같이 정의한 호스트를 일치시키는 데 유용합니다.

<예비>

기본 가상 호스트 파일에 대해 변경해야 하는 유일한 다른 사항은 이 도메인의 문서 루트 위치입니다. 우리는 이미 필요한 디렉터리를 만들었으므로 우리가 만든 디렉터리를 반영하도록 DocumentRoot 지시문을 변경하기만 하면 됩니다.

<예비>

전체적으로 virtualhost 파일은 다음과 같아야 합니다.

<예비>

파일을 저장하고 닫습니다.

첫 번째 가상 호스트 복사 및 두 번째 도메인에 대한 사용자 정의

이제 첫 번째 가상 호스트 파일이 설정되었으므로 해당 파일을 복사하고 필요에 따라 조정하여 두 번째 가상 호스트 파일을 만들 수 있습니다.

복사하여 시작하십시오.

<예비>

편집기에서 루트 권한으로 새 파일을 엽니다.

<예비>

이제 두 번째 도메인을 참조하도록 모든 정보를 수정해야 합니다. 완료되면 다음과 같이 표시될 수 있습니다.

<예비>

완료되면 파일을 저장하고 닫습니다.

5단계 - 새 가상 호스트 파일 활성화

이제 가상 호스트 파일을 만들었으므로 활성화해야 합니다. Apache에는 이를 수행할 수 있는 몇 가지 도구가 포함되어 있습니다.

a2ensite 도구를 사용하여 다음과 같이 각 사이트를 활성화할 수 있습니다.

<예비>

완료되면 Apache를 다시 시작하여 변경 사항을 적용해야 합니다.

sudo service apache2 restart

다음과 유사한 메시지를 받게 될 것입니다.

 * Restarting web server apache2
 AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message

이것은 우리 사이트에 영향을 미치지 않는 무해한 메시지입니다.

6단계 - 로컬 호스트 파일 설정(선택 사항)

이 절차를 테스트하기 위해 소유하고 있는 실제 도메인 이름을 사용하지 않고 일부 예제 도메인을 대신 사용하고 있는 경우 다음에서 hosts 파일을 일시적으로 수정하여 이 프로세스의 기능을 적어도 테스트할 수 있습니다. 로컬 컴퓨터.

이렇게 하면 등록된 도메인을 사용하는 경우 DNS 시스템이 수행하는 것처럼 구성한 도메인에 대한 모든 요청을 가로채서 VPS 서버를 가리킵니다. 이것은 컴퓨터에서만 작동하며 테스트 목적으로만 유용합니다.

이 단계를 위해 VPS 서버가 아닌 로컬 컴퓨터에서 작업하고 있는지 확인하십시오. 컴퓨터의 관리 암호를 알고 있거나 관리 그룹의 구성원이어야 합니다.

Mac 또는 Linux 컴퓨터를 사용 중인 경우 다음을 입력하여 관리자 권한으로 로컬 파일을 편집합니다.

sudo nano /etc/hosts

Windows 시스템을 사용하는 경우 여기에서 호스트 파일 변경에 대한 지침을 찾을 수 있습니다.

추가해야 하는 세부 정보는 VPS 서버의 공용 IP 주소와 해당 VPS에 도달하는 데 사용하려는 도메인입니다.

이 가이드에서 사용한 도메인의 경우 VPS IP 주소가 111.111.111.111이라고 가정하고 호스트 파일 맨 아래에 다음 행을 추가할 수 있습니다.

<예비>

이렇게 하면 컴퓨터의 example.comtest.com에 대한 모든 요청이 전달되고 111.111.111.111의 서버로 전송됩니다. 가상 호스트를 테스트하기 위해 실제로 이러한 도메인의 소유자가 아닌 경우 이것이 우리가 원하는 것입니다.

파일을 저장하고 닫습니다.

7단계 — 결과 테스트

이제 가상 호스트를 구성했으므로 웹 브라우저에서 구성한 도메인으로 이동하여 설정을 쉽게 테스트할 수 있습니다.

<예비>

다음과 같은 페이지가 표시됩니다.

마찬가지로 두 번째 페이지를 방문할 수 있는 경우:

<예비>

두 번째 사이트용으로 만든 파일이 표시됩니다.

이 두 사이트가 모두 제대로 작동하면 동일한 서버에 두 개의 가상 호스트를 성공적으로 구성한 것입니다.

집에 있는 컴퓨터의 호스트 파일을 조정한 경우 구성이 작동하는지 확인한 지금 추가한 줄을 삭제할 수 있습니다. 이렇게 하면 호스트 파일이 실제로 필요하지 않은 항목으로 채워지는 것을 방지할 수 있습니다.

장기간 액세스해야 하는 경우 필요한 각 사이트의 도메인 이름을 구매하고 VPS 서버를 가리키도록 설정하는 것을 고려하십시오.

결론

따라했다면 이제 두 개의 개별 도메인 이름을 처리하는 단일 서버가 있어야 합니다. 위에서 설명한 단계에 따라 이 프로세스를 확장하여 추가 가상 호스트를 만들 수 있습니다.

Apache가 처리할 수 있는 도메인 이름의 수에는 소프트웨어 제한이 없으므로 서버가 처리할 수 있는 만큼 자유롭게 만드십시오.

저스틴 엘링우드