작성일 댓글 남기기

우분투 자작 NAS – 8강, Apache2 가상호스트

xianchoi.kr이 나스와 연결되었다.
cloud.xianchoi.kr도 나스와 연결되었다.
blog.xianchoi.kr도 나스와 연결되었다.
같은 나스이기 때문에 할당된 아이피 주소가 동일하다.

원래는 하나의 아이피에 하나의 도메인만 연결이 가능하지만,
가상호스트는 하나의 아이피 주소에 여러 개의 도메인을 연결할 수 있게 해준다.

Apache2 가상호스트 설정하기

역시 ssh에서 작업한다.

연결할 디렉토리를 Apache 서버에 등록

우선 가상호스트에 연결할 디렉토리를 Apache 서버에 등록해줘야 한다.

sudo vi /etc/apache2/apache2.conf

중간 쯤으로 내리면 아래와 같은 폼의 내용이 나온다.
다음 내용을 복사하여 해당사항에 맞게 수정해서 중간에 대충 삽입한다.

<Directory 연결할경로>
    Options FollowSymlinks
    AllowOverride All
    Require all granted
</Directory>

그리고 이제 가상호스트 정보를 포함한 사이트 설정을 추가하여 Apache 서버에 사이트를 등록한다.

가상호스트를 위한 사이트 설정

기본 사이트 설정을 복사해서 새로운 사이트 설정을 만들어준다.

cd /etc/apache2/sites-available
sudo cp 000-default.conf 사이트명.conf
sudo vi /etc/apache2/sites-available/사이트명.conf

해당사항에 맞게 ServerName, ServerAlias, ServerAdmin, DocumentRoot를 수정한다.
다음은 실제 owncloud를 위해 사용하고 있는 설정이니 참고한다.

<VirtualHost *:80>
    # The ServerName directive sets the request scheme, hostname and port that
    # the server uses to identify itself. This is used when creating
    # redirection URLs. In the context of virtual hosts, the ServerName
    # specifies what hostname must appear in the request's Host: header to
    # match this virtual host. For the default virtual host (this file) this
    # value is not decisive as it is used as a last resort host regardless.
    # However, you must set it for any further virtual host explicitly.
    #ServerName www.example.com

    ServerName cloud.xianchoi.kr (연결할 도메인 주소를 쓴다)
    ServerAlias cloud.xianchoi.kr

    ServerAdmin 이메일주소
    DocumentRoot 연결할 폴더 경로

    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

    # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
    # error, crit, alert, emerg.
    # It is also possible to configure the loglevel for particular
    # modules, e.g.
    #LogLevel info ssl:warn

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    # For most configuration files from conf-available/, which are
    # enabled or disabled at a global level, it is possible to
    # include a line for only one particular virtual host. For example the
    # following line enables the CGI configuration for this host only
    # after it has been globally disabled with "a2disconf".
    #Include conf-available/serve-cgi-bin.conf
</VirtualHost>

Apache 서버에 사이트 등록

설정을 마쳤으니 사이트를 등록하고 아파치 서버를 재시작 해준다.

sudo a2ensite 사이트명.conf
sudo service apache2 restart

이것이 앞으로 여러 곳에서 유용하게 쓰일 용도에 따른 서브도메인을 연결하는 기본 과정이다.

왜 가상호스트를 이용해야 하는가?

내가 만약 owncloud를 설치했다. 그렇다면 접속하는 주소로써
xianchoi.kr/owncloud
cloud.xianchoi.kr
이 둘 중에 어느 것이 더 좋겠는가?

서브도메인을 활용하는 것이 더 좋다고 생각된다. 서비스에 따라서 3차 도메인으로 구분을 짓는 것이 웹서버 운용에 있어서 편리하다.

xianchoi.kr/blog, xianchoi.kr/cloud, xianchoi.kr/wiki 보다는
blog.xianchoi.kr, cloud.xianchoi.kr, wiki.xianchoi.kr 이 미관상으로도 좋다.

굳이 서브도메인으로 연결하지 않아도 되겠다면 이 부분은 지나가도 상관없다.