티스토리 뷰

반응형

Amazon Linux 2023 서버에서 여러 개 서브 도메인 운용 방법

메인 도메인 즉, 일반적으로 도메인은 도메인 회사로 부터 구매하였을 것입니다.

( 도메인 취급 회사 : 가비아, 카페24, Namecheap 등등 )

# 도메인 취급회사로 부터 도메인 구입 후 하위도메인, 즉 서브 도메인 설정방법은 해당 회사의 홈페이지 또는 매뉴얼을 통해 파악하시면 되겠습니다.

# 혹시 이러한 방법을 잘 모르신다면 inew9999@naver.com으로 메일 주시면 가비아를 통한 서브도메일 생성방법을 설명해 드리겠습니다. 가비아를 통한 방법을 알게 되면 다른 방법도 쉽게 터득하실 것이라고 믿습니다.

 

아래 설명은 도메인 제공회사에 이미 서브 도메인을 만들었다면 AWS 2023 리눅스 서버를 통해 하위 도메인을 운용하는 방법을 설명한 것입니다.

 

통상적인 설명을 넘어서 다양한 옵션까지 추가해 놓았으니 도움이 되시길 바랍니다.

특히, 개인적으로 서브도메인 주소로 접속하는 경우 특정.html로 접속되도록 하여 해당 서브 도메인을 마치 특정 업무를 처리하는 페이지로 활용이 가능하도록 해 보았습니다.

물론, 메인 도메인에서도 해당 옵션 사용이 가능합니다.

 

shell에서 AWS서버에 접속 후 다음 명령어를 통해 설정을 마무리 합니다.

# 질문 : Amazon Linux 2023 서버에서 여러 개의 서브도메인을 가진 가상 호스트 만들어 운용하는 방법


# 1. Apache 웹 서버 설치: 이미 아파치가 설치된 경우 생략
sudo yum install httpd


# 2. 가상 호스트 설정 방법 
# Apache의 설정 디렉터리로 이동

cd /etc/httpd/conf.d/

# 가상 호스트 설정 파일 생성 또는 수정: 

sudo nano YOUR도메인주소.conf
# sudo vi YOUR도메인주소.conf로 처리가능
# vi로 편집시 i는 편집 모드.  esc 후 :w는 저장, :q는 종료.
# 위 명령어 sudo nano 실행 후 가상 호스트 설정 파일(YOUR도메인주소입력.conf) 추가할 내용
# YOUR도메인주소.conf 파일에 넣어야 하는 내용, ssl.conf파일 편집을 통해 가장 하단에 이 내용을 동일하게 넣어도 작동 ok!!

<VirtualHost *:80 *:443>
    ServerName subdomain1.example.com  # subdomain1은 본인이 사용하고 싶은 서브도메인명
    ServerAlias www.subdomain1.example.com # www을 주소창에 입력 후 접속이 되도록 가상 호스트 지정처리
    ServerAlias rrr.subdomain1.example.com # rrr을 주소창에 입력 후 접속이 되도록 가상 호스트 지정처리
    # rrr.subdomain1.example.com로 주소창에 주소를 입력을 시도하는 사용자는 없겠지요. 이 예시는 이해를 돕기 위함입니다.
    # ServerAlias라는 것은 ServerName에 대한 여러가지 변형된 주소로 들어와도 subdomain1.example.com으로 접속하라는 의미가 되겠네요.
    # ServerAlias 지시어는 동일한 VirtualHost 블록 내에서 여러 개 사용될 수 있습니다. 
    # 그러나 각각의 서브도메인에 대해 하나의 ServerAlias 지시어를 사용하는 것이 더 명확하고 관리하기 쉽습니다.

    DocumentRoot /var/www/subdomainfolder # A. subdomainfolder는 사용하고 싶은 폴더명을 입력해야 함
    # 도메인 폴더는 기본적으로 "/var/www/html"로 되어 있음
    # ( A 또는 아래쪽 B 둘 중 한개만 있어도 됨. A.는 모든 사용자 접속을 허용)
    # 만약 경로에 공백이 포함되어 있다면, 반드시 따옴표로 감싸주어야 합니다. 
    # 예를 들어, DocumentRoot "/var/www/subdomain folder"와 같이 사용합니다.
    # 만약 경로에 공백이 없다면 ""표는 생략되어도 되고, 넣어도 됩니다.
    
    DirectoryIndex 특정.html  
    # 특정.html을 기본 문서(index document)로 지정 가능 - 보통은 생략 -
    # 이 설정은 기본적으로 설정하지 않고 사용합니다. 즉, 삭제해도 무방합니다.
    # 이 설정을 사용 적용하면 사용자가 해당 도메인에 접속했을 때 "특정.html" 파일로 접속되어 표시됩니다. 
    # 만약 특정.html 파일이 해당 디렉터리에 없거나 권한이 없는 경우에는 웹 서버가 디렉터리 내의 다른 기본 문서를 찾게 됩니다. 
    # 일반적으로 index.html, index.php 등이 기본적으로 사용되는 기본 문서로 처리 됩니다.
    # 따라서 설정한 파일이 없을 경우에는 해당 디렉터리의 기본 문서 설정에 따라 다른 파일이 표시될 것입니다.

    # 로그 설정 - 생략가능하지만 넣어주는게 유리
    ErrorLog /var/log/httpd/subdomain1.example.com_error.log
    # subdomain1과 동일하게 지정
    
    CustomLog /var/log/httpd/subdomain1.example.com_access.log combined
    # subdomain1과 동일하게 지정


    <Directory "/var/www/subdomainfolder"> # B. subdomainfolder는 사용할 서버 폴더명으로 변경
    # ( 위쪽 A 또는 B 둘 중 한개만 있어도 됨. B.는 옵션을 선택하는 경우에 사용)
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
        # 가. 모든 사용자 접속 가능-통상 모든 사용자 접속으로(가 또는 나 중 1개만 사용해야 함)
        Require ip 특정_IP주소 또는 특정_도메인주소
        # 나. 특정 ip or 도메인만 접속가능 -필요시 지정자만 가능(가 또는 나 중 1개만 사용해야 함)
    </Directory>

    # HTTPS 설정 부분은 ssl설치 및 셋팅 방법 사전 이해 필요. ssl.conf 하단에 삽입 될 내용
    SSLEngine on
    SSLCertificateFile /path/to/ssl/certificate.crt
    SSLCertificateKeyFile /path/to/ssl/private.key
    SSLCertificateChainFile /path/to/ssl/chainfile.pem
</VirtualHost>


# 위 단계를 반복하여 필요한 만큼의 가상 호스트 설정 파일을 생성합니다. 
# 각각의 파일은 다른 서브도메인에 대응하도록 설정됩니다.


# 가상 호스트 활성화:

sudo systemctl enable httpd
sudo systemctl restart httpd

# DNS 레코드 추가:
각 서브도메인에 대한 DNS 레코드를 추가하여 해당 서브도메인을 서버의 IP 주소로 매핑합니다.

# 서브도메인 테스트:
# 설정이 완료되면 각 서브도메인에 브라우저를 통해 접속하여 정상적으로 작동하는지 확인합니다.
# 이는 Apache 웹 서버를 기준으로 한 예시이며, Nginx 등 다른 웹 서버를 사용하는 경우 설정 방법이 다를 수 있습니다.
# 웹 서버와 가상 호스트 설정에 따라 세부적인 내용이 달라질 수 있으므로 사용 중인 웹 서버에 맞게 조정하시기 바랍니다.

 

위 내용과 같이 처리하신다면 쉽고 빠르게 나의 서브도메인을 AWS 2023 리눅스 서버를 통해 운용이 가능합니다.

 

물론, 위에서 언급한 디렉토리에 워드프레스를 다운받아 설치하면 워드프레스가 작동될 것입니다.

 

즐겁고 행복한 개발이 되시길 바랍니다.

반응형