맥미니에 macOS Server를 설치해서 웹 서비스 및 개발 서버로 사용합니다. Apache Virtual Host 설정은 블로그 도메인을 Docker로 서비스하는 Ghost로 연결할 때 사용하였습니다.

블로그는 글을 작성할 때 Markdown 사용이 가능한 Ghost를 이용하였습니다. Wordpress, Ghost, Hugo 등 다양한 플랫폼 중 Ghost를 선택한 이유는 웹 상에서 글을 쓰고 관리하기 편리하여 Ghost를 사용하였습니다. Wordpress는 너무 복잡하고 Markdown으로 쓰기에는 불편함이 많아서 제외되었습니다. 현재는 Hugo를 이용하여 블로그를 운영 중입니다.

왜 Apache Virtual Host를 설정할까?

Ghost를 Docker를 이용하여 설치하면 기본적으로 http://localhost:2368 로 주소가 할당됩니다. 하나의 서버에서 서비스 별로 포트를 할당하여 사용하는 경우 특정 도메인, 예를 들어 블로그 도메인 https://blog.lulab.net로 연결하는 경우 사용합니다.

즉 Apache Web Server의 Virtual Host의 ProxyPass를 이용하여 https://blog.lulab.net 주소로 요청이 올 때, http://localhost:2368을 호출하여 반환 값을 전달하여 한 대의 서버에서 다수 서비스를 서브 도메인으로 제공할 때 유용합니다. 물론 Proxy 특성을 이용하여 다양한 방식으로 활용 가능합니다.

macOS Server의 Apache Virtual Host 설정

macOS Server의 Apache Web Server에서 Virtual Host를 설정하는 방법은 구글에 많이 검색되지만 macOS Server를 이용할 때 설정하는 방법은 적습니다. 특히 설정 위치 등이 변경된 경우가 많아서 다시 정리하였습니다.

// Apache conf 저장경로
/Library/Server/Web/Config/apache2/sites*.conf

위 경로에 macOS Server Apache Web Server 설정이 저장됩니다. macOS Server에서 쉽게 웹사이트의 프록시를 설정하는 방법으로는 웹사이트에서 서비스를 추가하고 생성된 설정 파일을 수정합니다.

다음은 https://blog.lulab.net 연결 설정입니다.

$ sudo vi /Library/Server/Web/Config/apache2/sites/0000_127.0.0.1_34543_blog.lulab.net.conf

아래와 같이 Proxy에 대한 설정을 추가하고 저장한다.

<VirtualHost 127.0.0.1:34543>
    ServerName https://blog.lulab.net:443
    
    // SSL 설정이 필요한 경우 작성

    ProxyRequests Off
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>

    ProxyPass / http://localhost:2368/
    ProxyPassReverse / http://localhost:2368/
    <Location />
        Order allow,deny
        Allow from all
    </Location>
</VirtualHost>

macOS Server 에서 웹 서비스를 중지했다가 다시 시작하거나 다음의 명령어로 Apache Web Server를 재시작하여 설정을 적용합니다.

$ sudo apachectl restart

재시작을 하면 해당 도메인으로 서비스 되는 블로그를 확인할 수 있습니다.


Apache의 Virtual host는 위와 같이 간단한 설정으로 적용합니다.

본 글은 macOS Server 기준으로 설명하였지만 Apache Server를 사용하는 경우에는 위의 설정들이 동일합니다. Apache Server의 설치 경로 혹은 설정의 경로들이 다를 뿐이니 OS와 참고하실 수 있습니다.

Proxy를 이용한 연결 설정은 개인 서버에서 다양한 도메인으로 서비스를 제공할 때 유용합니다. 저와 같이 맥미니 서버로 개인 프로젝트 및 블로그를 제공하는데 Proxy가 가장 편리합니다.