본문 바로가기
서버/리눅스 서버

11.1 우분투 / 데비안 Apache (아파치 서버) 가상호스트 및 도메인 설정하기

by ㅋㅋ잠자 2015. 2. 2.
반응형

안녕하세요. 도정진입니다.

   

오늘은 아파치 서버와 도메인을 연동하여 보겠습니다.

   

   

   

실제로 처음에는 가상호스트 개념을 몰랐습니다. 그냥 IP -> 도메인 주소 1:1 대응으로 작동하는 것인줄만 알았지요.

   

그런데 가상호스트 설정을 통해 한 서버에서도 여러개의 가상호스트를 구동할 수 있음을 알게 되었습니다. 그리고 최근에 리눅스 버전이 업데이트 됨으로써 14.04 버전을 기준으로 작성되었음을 알려드립니다.

   

그리고 최소한의 설정으로 가상호스트를 구현하기 때문에 그리 기술적인 내용이 아님을 미리 말씀드립니다.

   

   

   

   

   

1. 도메인 구입

   

저는 일단 도메인을 제일 싼곳에 주문하게 되었습니다. 메일플러그라는 업체에서 구매를 하게 되었네요. 가격이 싸서 나중에 문제가 될것 같습니다만 ㅠㅠ , 무료 도메인으로는 .tk 도메인이 있습니다. 아래 주소에서 가입을 하시면 되고 다른 곳에서 도메인을 사셔도 됩니다.

   

http://www.dot.tk/ko/index.html

   

네 여기서 도메인 가입을 해 주시면 됩니다. 그리고 tk 도메인은 네임서버 관리가 되는지는 모르겠습니다. 그런데 기업용이 아니라면 네임서버를 다른것을 입력하여 다른 곳에서 도메인 관리를 하시는것은 비추합니다. 매우 귀찮기 때문입니다. 같은 곳에서 하면 편하니까 제 글에서는 그렇게 진행하도록 하겠습니다 ㅎㅎ

   

실제로 도메인 관리의 편리성과 네임서버의 안전성

(네임서버가 갑자기 죽는다면 제 사이트가 들어가지지 않는 심각한 문제가 생깁니다. 네임서버가 죽으면 최소한 3시간 이상 접속이 안될 가능성이 있습니다. 최 상위 도메인 서버들과 하루에 2번 정도 동기화를 하게 되는데 그 시간에 네임서버가 죽어 있으면 다음 동기화 까지 업데이트가 되지 않아서 접속이 되지 않는것입니다. 전에 IPTIME 도메인 서버가 죽어서 접속이 안되었던 점과 똑같은 이유입니다.)

때문에 다른 곳에 등록을 해 두기도 합니다.

   

저는 일단 도메인을 메일플러그에서 djjproject.com 을 구입하였습니다.

   

   

   

   

2. 도메인 설정(별칭 * 등록)

   

   

   

일단 도메인 설정에 가시면 (네임서버를 다른 곳에 등록하신 분들은 다릅니다만 기본적으로 설정은 같습니다.) 이렇게 Self DNS 가 있습니다.

   

   

이렇게 별칭 CNAME 이라는 것이 있습니다. 도메인 주소를 -> 어떤 도메인 주소로 연결하는 것입니다.

   

첫번째는 실제로 www.djjproject.com 과 djjproject.com 이 다르기 때문에 등록을 시켜 둔것입니다. 둘 다 같은 곳을 가르키게 만들기 위해 추가한 것입니다.

   

두번째는 제 블로그를 blog.djjproject.com 과 연결시키기 위해 작성된 코드입니다. 다른 것들도 위의 예시 처럼 추가가 가능합니다. ㅎㅎ

   

   

호스트 IP 부분이 있습니다. 이 부분은 서브 도메인이나 실제 메인 부분에 IP를 매칭시키는 것입니다. 첫 레코드는 djjproject.com 을 -> 어떤 공인 아이피로 매칭시키는 것입니다. 그리고 *.djjproject.com 은 모든 서브 도메인을 어떤 공인아이피를 가리키게 하는 것입니다.

   

즉, 제가 blog.djjproject.com / download.djjproject.com / test.djjproject.com 을 한 서버에서 가상호스트를 통하여 열고 싶습니다. 그러면 윗 호스트IP 부분에 3개의 필드를 작성해 주어야합니다. 그럼.. 매우 귀찮습니다.

   

실제로 하나 추가할 때 마다 상위 도메인 서버와 동기화 되려면 3시간 정도를 기다려야 합니다. 가상호스트를 추가할 때 마다 저기 윗 필드에 추가하고 3시간 씩이나 기다려야 서브 도메인이 작동을 하게 되는 것입니다. 그리고 필드가 많아 지면 일일이 입력이 귀찮기 때문에 별칭 * 을 통해 모든 서브도메인을 등록시켜 두는 작업을 하게 됩니다. 바로 그 작업이 위의 작업입니다. (2번째 레코드)

   

이렇게 2개만 등록을 시켜두면 서브도메인과 도메인 등록은 끝이 난 것입니다 ㅎㅎ

   

   

등록을 하였는데 바로 작동을 하지 않는다고 놀래지 마시고 느긋하게 3~12시간 정도 기다리 신 후 접속해 보시면 정상적으로 작동이 됩니다.

   

   

   

   

   

3. 아파치 서버 가상호스트 설정하기

   

기본적으로 아래의 위치로 이동하시면 000-default 파일이 있습니다.

   

그 파일을 원본으로 가져와서 작업을 하겠습니다. 일단 그 파일을 밖으로 복사해 주세요.

   

(위치는 /etc/apache2/sites-enabled 입니다)

   

   

   

기본적으로 이렇게 생겼습니다. 여기서 ServerName 은 서브 도메인이나 도메인 주소를 말합니다. ServerAlias 는 이런 주소를 입력했을 때 요 가상 서버로 접속한다는 의미 입니다. 위 설정은 djj.iptime.org 혹은 www.djjproject.com 을 입력하게 되면 -> djjproject.com 으로 이동하게 되는 것입니다.

   

이 가상 서버에 대해서 Document Root 는 /usbhdd/htdocs 입니다.

   

그럼 제가 만들어 놓은 파일을 기준으로 쉽게 설명을 드리겠습니다.

   

   

000-default 기준으로 파일을 만들어 놓은것입니다. 각기 다른 루트를 가지고 있으며 다른 서브 도메인을 가지고 있습니다. 순서대로 보여 드리겠습니다. 버추얼 호스트 부분에는 자신의 서버에 할당된 아이피를 적고 원하는 포트를 적으시면 됩니다. 혹은 다른 포트에 가상호스트를 열고 싶으시면 다른 포트를 적어주시고, 꼭 apache2.conf 파일에 Listen 지정한 포트 를 추가해 주여야 페이지가 열립니다.

   

Listen 8080

   

위와 같은 식으로 적어주시면 됩니다. 적어 주시지 않으면 가상호스트 설정을 해도 페이지가 열리지 않습니다. 이 부분에 대해서는 나중에 WebDav 를 구축할 때 정확히 말씀 드리겠습니다.

   

<VirtualHost 192.168.0.14:80>

ServerName djjproject.com

ServerAlias djj.iptime.org

ServerAlias www.djjproject.com

ServerAdmin djj9404@gmail.com

DocumentRoot /usbhdd/htdocs

DirectoryIndex index.html index.php /_h5ai/server/php/index.php

   

ErrorLog ${APACHE_LOG_DIR}/error.log

CustomLog ${APACHE_LOG_DIR}/access.log combined

   

</VirtualHost>

   

<VirtualHost 192.168.0.14:80>

ServerName freepbx.djjproject.com

ServerAlias www.freepbx.djjproject.com

ServerAdmin djj9404@gmail.com

DocumentRoot /usbhdd/htdocs/freepbx

DirectoryIndex index.html index.php /_h5ai/server/php/index.php

   

ErrorLog ${APACHE_LOG_DIR}/error.log

CustomLog ${APACHE_LOG_DIR}/access.log combined

   

</VirtualHost>

   

<VirtualHost 192.168.0.14:80>

ServerName data.djjproject.com

ServerAlias data.djjproject.com

ServerAdmin djj9404@gmail.com

DocumentRoot /usbhdd/htdocs/data

DirectoryIndex index.html index.php /_h5ai/server/php/index.php

   

ErrorLog ${APACHE_LOG_DIR}/error.log

CustomLog ${APACHE_LOG_DIR}/access.log combined

   

</VirtualHost>

   

<VirtualHost 192.168.0.14:80>

ServerName download.djjproject.com

ServerAlias www.download.djjproject.com

ServerAdmin djj9404@gmail.com

DocumentRoot /usbhdd/htdocs/download

DirectoryIndex index.html index.php /_h5ai/server/php/index.php

   

ErrorLog ${APACHE_LOG_DIR}/error.log

CustomLog ${APACHE_LOG_DIR}/access.log combined

   

</VirtualHost>

   

이렇게 설정이 되어 있습니다. 정말 단순합니다.

   

위처럼 설정을 하고 난 후에 결과물은 아래의 주소를 진입해 보시면 알 수 있습니다.

   

가상호스트가 4개 있지만 설정중이라 2개 밖에 동작하지 않습니다.

   

http://www.djjproject.com/

http://download.djjproject.com/

   

한 서버에서 서브 도메인을 통해서 분리가 가능합니다. 서브 도메인의 힘을 받지 못했다면 아마도 이런식으로 되겠죠.

   

http://www.djjproject.com/download/ 정말 번잡합니다..

   

   

   

   

저도 도메인을 구매해 놓고 서브 도메인과 제 서버를 연결하기 까지 정말 오래 걸렸습니다. 이 문제는 도메인 변동사항 반영이 3시간 ~ 12시간 정도 걸리기 때문입니다. 설정을 해 두고 조금 쉬시다 보면 정상적으로 작동이 될껍니다..

   

   

감사합니다.

   

반응형

댓글