Uncategorized

How to set up apache Virtual Hosts on Ubuntu 16.04

[개요]

아파치 웹 서버는 웹 컨텐츠를 인터넷에 제공하는 가장 대중적인 방법입니다. 아파치 서버는 인터넷 상의 웹 사이트의 절반 이상을 차지하며 매우 강력하고 유연합니다.

 아파치는 그 기능과 컴포넌트가 독립적으로 수정하고 조정될 수 있도록 독립적인 유닛으로 나누어져 있습니다. 독립적인 사이트나 도메인은 virtual host로 불리는 기본 유닛으로 설명됩니다. 

이러한 지정을 통해 관리자는 하나의 서버에서 매칭 매커니즘을 사용하여 단일 인터페이스 또는 단일 IP에서 여러 도메인이나 사이트를 호스팅 할 수 있습니다. 이것은 하나의 VPS에서 하나 이상의 사이트를 호스트 하려는 사람들에게 적합합니다.

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

이 가이드에서는 우분투 16.04 VPS에서 아파치 가상 호스트를 설정하는 방법을 설명합니다. 이 과정에서 요청하는 도메인에 따라 다른 방문자에게 다른 콘텐츠를 제공하는 방법을 배우게 됩니다. 

미리 준비할 것

이 튜토리얼을 시작하기 전에, 루트가 아닌 사용자 만들기 튜토리얼을 step1부터 4까지 해야합니다. 

다음 단계를 수행하려면 apache가 설치되어 있어야 합니다. 아직 그렇게 하지 않았다면 apt-get을 통해 설치합니다.

$sudo apt-get update

$sudo apt-get install apache2

이 단계가 완료되면 시작할 수 있습니다. 이 가이드의 목적에 따라 designersfinger.com의 가상 호스트를 만들고 ljkstudio.com의 가상 호스트를 만듭니다. 이것들은 가이드 전체에서 참조될 것이지만, 따라 가면서 자신의 도메인이나 값으로 대체해야 합니다.

첫번째 단계 – 디렉토리 구조 만들기

첫번째 단계는 방문자에게 제공할 사이트 데이터를 보관할 디렉토리 구조를 만드는 것입니다. 우리의 document root(아파치가 검색할 최상위 디렉토리)는 /var/www 디렉토리 아래의 개별 디렉토리로 설정 됩니다. 우리가 계획하고 있는 가상 호스트 모두를 위해 여기에 디렉토리를 생성할 것입니다. (질문! 그럼 home폴더는 이제 사용하지 않는 건가요?)

이 디렉토리들 각각에서 실제 파일을 저장할 public_html 폴더를 만듭니다. 이것은 우리에게 호스팅의 유연성을 제공합니다. 

home폴더에 만들 것이기 때문에 아래 내용은 필요없음

$sudo mkdir -p /home/designersfinger/public_html

$sudo mkdir -p /home/ljkstudio/public_html

두번째 단계 – 권한 지정

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

$sudo chown -R $USER:$USER /home/designersfinger/public_html

$sudo chown -R $USER:$USER /home/ljkstudio/public_html

$USER 변수는 엔터키를 누를 때 현재 로그인 한 사용자의 값을 사용합니다. 이렇게하면 일반 사용자가 이제 우리가 컨텐츠를 저장할 public_html 하위 디렉토리를 소유하게 됩니다.

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

$sudo chmod -R 755 /home/designersfinger/public_html

$sudo chmod -R 755 /home/ljkstudio/public_html

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

세번째 단계 – 새 virtual host파일 만들기

가상 호스트 파일은 가상 호스트의 실제 구성을 지정하고 Apache 웹 서버가 다양한 도메인 요청에 응답하는 방법을 지정하는 파일입니다. 아파치에는 000-default.conf라는 기본 가상 호스트 파일이 있습니다. 점프 오프 포인트로 사용할 수 있습니다. 우리는 그것을 복사하여 각 도메인에 대한 가상 호스트 파일을 만듭니다. 

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

$sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/designersfinger.conf

파일을 만들고 나서, vi를 이용하여 다음 내용을 작성합니다.

$sudo vi /etc/apache2/sites-available/designersfinger.conf

파일 내용은 다음과 비슷합니다. 

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

몇가지 내용이 없습니다. 첫 번째 도메인에 대해 항목을 사용자 정의하고 몇 가지 추가 합니다. 이 가상 호스트 섹션은 기본 HTTP 포트인 포트 80에서 이루어진 모든 요청과 일치합니다. 먼저 ServerAdmin은 관리자가 전자메일을 통해 받을 수 있는 이메일로 변경합니다. (? 그럼 중요한 정보가 아닌가?)

다음으로 ServerName과 ServerAlias를 추가합니다. ServerName은 이 가상 호스트 정의와 일치해야 하는 도메인을 설정합니다. 다음은 ServerAlias라고하며 www와 같이 정의한 주소를 일치시킬 때 사용됩니다. 

ServerName designersfinger.com

ServerAlias www.designersfinger.com

기본 virtual host파일을 위해 지정해 줘야 할 중요한 사항은 도메인에 대한 document root 위치입니다. 우리는 이미 필요한 디렉토리를 만들었기 때문에 경로를 반영하면 됩니다. 

DocumentRoot /home/designersfinger/public_html

또한 폴더 권한도 변경해야 합니다.

<Directory /home/designersfinger/public_html/>

AllowOverride none

Require all granted

</Directory>

종합적으로 우리의 virtual host 파일은 다음과 같습니다.:

<VirtualHost *:80>

ServerAdmin designersfinger@localhost

ServerName designersfinger.com

ServerAlias www.designersfinger.com

DocumentRoot /home/designersfinger/public_html

ErrorLog ${APACHE_LOG_DIR}/error.log

CustomLog ${APACHE_LOG_DIR}/access.log combined

<Directory /home/designersfinger/public_html/>

AllowOverride none

Require all granted

</Directory>

</VirtualHost>

저장하고 종료합니다. 

이 파일을 복사하여 ljkstudio.conf 파일도 제작합니다. 

$sudo cp /etc/apache2/sites-available/designersfinger.conf /etc/apache2/sites-available/ljkstudio.conf

네번째 단계 – 새 Virtual Host파일 적용

이제 가상 호스트 파일을 만들었으므로 가상 호스트 파일을 사용합니다. 아파치는 이것을 가능하도록 하는 몇가지 도구를 제공합니다. a2ensite를 사용하여 활성화 하고 a2dissite를 사용하여 비활성화 합니다. 

$sudo a2ensite designersfinger.conf

$sudo a2ensite ljkstudio.conf

다음으로 기본 사이트 정의 000-default.conf를 비활성화 합니다.:

$sudo a2dissite 000-default.conf

끝나고 나면 아파시 서비스를 재시작 합니다. 

$sudo systemctl restart apache2

(이런 방법도 있습니다. $sudo service apache2 restart, 그러나 추천하지 않습니다.옛날방법임)

다섯번째 단계 – Local Host셋업(옵션)

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

이렇게 하면 등록된 도메인을 사용하는 경우 DNS 시스템과 마찬가지로 구성한 도메인에 대한 요청을 가로채어 VPS 서버를 가리킵니다.

$sudo vi /etc/hosts

Windows 시스템을 사용하는 경우 여기에서 호스트 파일 변경에 대한 지시 사항을 찾을 수 있습니다. 추가해야하는 세부 정보는 VPS 서버의 공용 IP 주소와 그 VPS에 연결하려는 도메인입니다.

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

127.0.0.1   localhost
127.0.1.1   guest-desktop
111.111.111.111 example.com
111.111.111.111 test.com

여섯번째 단계 – 테스트하기

브라우저에서 http://www.designersfinger.comhttp://ljkstudio.com 를 테스트 해 봅니다.

이 두 사이트가 모두 잘 작동하면 동일한 서버에 두 개의 가상 호스트를 성공적으로 구성된 겁니다. 가정용 컴퓨터의 호스트 파일을 조정 한 경우 구성이 작동하는지 확인 했으므로 지금 추가 한 행을 삭제할 수 있습니다. 이렇게하면 호스트 파일이 실제로 필요하지 않은 항목으로 채워지지 않게됩니다.

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

결론

이 가이드를 잘 따랐다면 두 개의 개별 도메인 이름을 처리하는 단일 서버를 갖게됩니다. 가상 호스트를 추가로 만들기 위해 위에서 설명한 단계에 따라 이 프로세스를 확장 할 수 있습니다.

Apache가 처리 할 수있는 도메인 이름의 수에는 소프트웨어 제한이 없으므로 서버가 처리 할 수있는만큼 많은 것을 만들 수 있습니다.

[SSH 설정하기]

암호화 접속을 설정하기 위해서는 OpenSSL을 사용하는것 같습니다.

Leave a Reply

Your email address will not be published. Required fields are marked *