본문 바로가기
aws

7탄. 1개의 서버(aws)에 여러 개 사이트 운영하기(virtual host)

by 요몽이 2024. 1. 16.
DNS 설정부터 아파치 가상 호스트 설정까지, 서브 도메인을 만드는 전 과정을 차근차근 안내해 드리겠습니다. 서브 도메인을 처음 설정한다면 이 포스트를 꼭 읽어보세요.
워드프레스를 예시로 사용하여 실제로 서브 도메인을 만들고, 접속 확인을 진행하는 과정을 보여드립니다. 서브 도메인 설정 후 별도 DB 연동 과정도 함께 다룰 예정이니, 워드프레스 설치 및 운영 중이신 분들은 더더욱 꼭 확인해보세요!

 

목차

    1. 서브 도메인 설정

    namecheap.com 에서 서브 도메인을 만든다.
    좌측메뉴 Domain List > Advanced DNS > ADD NEW RECORD  
    A Record 선택 > 원하는 서브도메인 명을 정한다
    ( 아래 화면에서는 tool 로 정했다. ) 
    우측 끝의 체크 모양 아이콘 클릭하면 반영이 된다. 

    클릭

    메인도메인인 www.domain.com   이라면 아래와 같이 tool 을 서브도메인명으로 정하면, 
    서브도메인은 tool.domain.com 이 된다. 
    ※ 참고로 Value 에 파란박스로 가려진 부분은 서버 IP 이다.
    ( AWS 탄력적 IP 할당 방법은 이전 포스트 참조 )

    namecheap에서 서브도메인 설정하는 화면

    자... 이렇게 하고, tool.domain.com 에 접속하면 제대로 화면이 나올까요? 
    예.. 예상대로 아래 화면 처럼 접속이 안됩니다..(슬픈 예감은 틀린적이 없다. ㅎㅎ)

    서브도메인 접속 실패 화면

    그러면 무엇을 더 해야 할까요? 
    네. 서브도메인 tool.domain.com 에 접속하면 실제 서버의 어디를 접근하여 보여 줄 것인지를 정해야 되겠죠. 그래서 서브도메인으로 접근하면 보여줄 내용을 담는 공간(즉 폴더)을 미리 만들어야 합니다. 그리고 서브도메인으로 접근하면 그 공간(폴더)으로 연결되도록 apache server에 미리 알려줘야 되겠지요. 즉 아파치 서버의 설정을 변경해야 됩니다. 그러면 순서대로 진행해 보겠습니다.

    2. 서브도메인 폴더 생성

    워드프레스를 이용하여 서브도메인 공간을 만드는 예로 진행해 보겠습니다.
    (예시는 실용적이야 하므로.. ^^) 
    앞에 소개했던 로컬에서 워드프레스를 다운받아 압축을 푼 후 전체를 서버에 업로드하는 방식이 아니라 서버에서 바로 압축파일을 받아 푸는 방식을 알려드리겠습니다.
    (이전 방법보다 이 방법이 훠~얼씬 실용적인 방법입니다.)

    워드프레스 다운로드 화면

    • (주의) 꼭 위의 주소를 통해 한국어 버전을 설치하세요.. 영문버전 설치하는 경우가 많아요....
    • 서버 쉘에서 /var/www 로 이동합니다.
    cd /var/www
    • wget 명령어로 워드프레스를 다운받습니다. 
    wget https://ko.wordpress.org/latest-ko_KR.tar.gz
    • tar 명령어로 압축을 풉니다. ( 순식간에 압축이 풀린다. )
    tar -xzf latest-ko_KR.tar.gz
    • ls 명령을 치면 아래와 같이 압축이 풀린 워드프레스 폴더를 볼 수 있다. 

    서버에 워드프레스를 설치한 화면

    • 아래 명령어로 폴더명을 원하는 이름으로 변경한다. ( 메인도메인명_서브도메인명 으로 작명 )

    ※ 참고로 이름변경을 위해 rename 명령어도 있지만 짧은 명령어 mv 가 좋아 보입니다. 

    mv wordpress domain_tool
    자 지금까지 tool.domain.com 으로 접속하면 실제 서버로 갈 장소(폴더)를 만들었습니다.
    그 장소는  /var/www/domain_tool  이 되겠네요.
    이제 tool.domain.com 으로 접속하면 서버의 /var/www/domain_tool  폴더로 가는 것을 아파치 서버에 알려줘야 겠지요.  아파치 서버를 세팅해 보겠습니다.

    3. 아파치 서버 설정 (apache server setting)

    • 아파치 서버 설정하는 곳으로 이동 
    cd /etc/httpd/conf
    • 해당 디렉토리에서 ls 명령을 하면  httpd.conf  파일을 확인할 수 있다. 
    • vi 명령어로 vi httpd.conf  하여 파일을 열면, 가장 하단에 아래와 같은 내용이 있다.

    httpd.conf 파일 버추얼호스트 설정 부분

    위 내용을 쉽게 풀어 말하자면, conf.d 폴더 아래 확장자가 .conf 인 파일을 생성해서 virtualhost 설정을 하면 반영이 된다는 말이다. ( 이방법 말고, 위에 보이는 httpd.conf 파일 맨 하단에 virtualhost 설정을 해도 동일하다. ) 깔금하게 관리를 한다면, conf.d 폴더 내에 각각의 파일로 관리하는 것을 추천합니다.
    이해를 돕기 위해 다시 설명을 드리자면, /etc/httpd/conf.d/ 폴더 아래 a.conf  b.conf   c.conf  이런 식으로 서브도메인 마다 설정파일을 만들어서 그 안에 설정 내용을 담아 놓으면, 브라우저에서 tool.domain.com 으로 서브도메인에 접속을 시도할 때 아파치서버가 미리 만들어진 서브도메인 폴더로 안내하는 것이다. 
    그러면 conf.d  폴더로 이동하자
    cd /etc/httpd/conf.d
    • 파일명은 아래 처럼 서브도메인명.도메인명.conf 형태로 하면 나중에 구분하기 편하다.
      • 서브도메인명 : tool
      • 도메인명 : domain.com
    • 서브도메인명.도메인명.conf  형태의 파일을 생성하여 아래와 같이 설정한다. 
    sudo vi tool.domain.com.conf
    <VirtualHost *:80> 
    ServerAdmin myemail@gmail.com 
    ServerName tool.domain.com 
    ServerAlias tool.domain.com 
    DocumentRoot "/var/www/domain_tool" 
    ErrorLog tool.domain.com 
    CustomLog tool.domain.com combined 
     
    RewriteEngine On 
    RewriteCond %{HTTPS} off 
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
    </VirtualHost>

    위 설정 중 아래 붉은색 부분만 자신의 설정값으로 수정해주면 된다. 

    ServerAdmin myemail@gmail.com 
    ServerName tool.domain.com 
    ServerAlias tool.domain.com 
    DocumentRoot "/var/www/domain_tool"    : 주소창에 tool.domain.com 을 치면 -> 서버에 있는 domain_tool 로 향함.
    ErrorLog tool.domain.com 
    CustomLog tool.domain.com combined 
    RewriteEngine On                 : 여기 아래 부분은 http 로 접속하면 https로 자동 접속되도록 하는 설정 부분 
    RewriteCond %{HTTPS} off 
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
    • 설정을 변경했으니 이제 아파치서버를 재시작한다.
    sudo systemctl restart httpd
    • 자 이제 tool.domain.com 을  주소창에 넣고 접속해보자.~  만약 아래와 같은 화면이 나왔다면 SSL 설정 때문이다.

     

    • SSL 설정 방법에 따라 설정해주면 잘 접속이 될 것이다. (이전 포스트 참조)

    • 정상적인 설정이 완료되었다면 위 화면이 뜬다.. ~~!!
    이로써 서브 도메인의 DNS 설정부터 아파치 가상호스트 설정까지 모든 과정이 완료되었습니다. 실제 서브 도메인 주소로 접속이 잘 되는 것을 확인하셨기를 바랍니다.오늘 포스트가 여러분의 서브 도메인 설정에 도움이 되었기를 바랍니다. 다음 포스트에서는 이 서브 도메인에 별도의 데이터베이스를 연동하고 워드프레스 설정을 완료하는 과정을 다루겠습니다. 서브 도메인 운영 시 별도 DB 연동은 필수적인 과정이므로 꼭 확인해 주시기 바랍니다.