JIGGAG

도메인을 구입했다

2020년 8월 23일

항상 나만의 도메인을 갖고 싶다고 생각해왔는데 막상 그 도메인을 어디에 연결하지?하고 질문을 던졌을때 대답하지 못하여 구입을 미뤄두고 있었다. 그러던 며칠전 큰맘먹고 나에게 주는 선물로 구입했다! 이 과정에는 최근에 재밋게 보고 있는 44bits 유튜브가 큰 도움이 되었다.

도메인 구입

가비아, 닷홈, AWS... 여러 사이트를 찾아봤지만 역시 추천해주신대로 고대디가 가장 저렴했다. 2년 구입을 선택하니 좀 더 저렴해지는 것 같아서 한번에 2년으로 결제했다. 자꾸 뜬금없는 옵션이 추가될뻔했는데 이건 꼼꼼하게 읽어가면서 필요한 도메인만 딱 구입할 수 있었다.

네임서버, 레코드

지금 AWS EC2에 띄워둔 웹서버에 도메인을 연결해보고 싶어서 AWS EC2니깐 네임서버도 Route53으로 가야겠지?하면서 정말 아무런 의심없이 네임서버를 변경하였다... 그리고 연결하고 하루이틀 지나보니 AWS 요금이 추가발생하고 있는게 너무 당황스러웠다. Route53도 비용이 발생하는건대!!!

얼릉 고대디 네임서버로 원복하고 Route53 설정은 깔끔하게 지워주었다. 이 부분에서는 고대디에서 도메인을 구입하면 자동으로 네임서버가 설정되어있고 DNS 레코드만 추가해주면 되는 내용이였다. 고대디에 기본적으로 www 호스트는 추가가 되어있었고 www의 레코드값인 @를 A타입 레코드로 서버IP를 연결하면 www.jiggag.com이라는 도메인이 123.456.7.890이라는 IP주소로 연결이 된다.

아래는 현재 등록된 레코드의 일부 모습이다. 서브도메인으로 사용하려는 board도 같은 방식으로 추가해두었다.

레코드 타입 호스트
A @ 123.456.7.890
A board 123.456.7.890
CNAME www @

가상호스트

하나의 서버에 포트로 여러 웹서버를 구분해서 띄울 수 있다. 1234포트는 공식 홈페이지라면 5678포트는 내부 관리용 사이트를 운영할 수 있다. 다만 각각 사이트 접속을 위해서 123.456.7.890:1234로 접속을 해야한다거나 도메인을 연결했어도 기본적으로 연결되는 80포트가 아닌 다른 포트는 www.abc.com:1234 이렇게 명시를 해줘야한다면 모든 사용자가 포트까지 알아야하는 아름답지 않은 상황이 연출된다.

이에 포트별로 가상호스트를 설정하여 서브도메인으로 요청이 들어왔을때 해당 도메인의 요청을 프록시 하여 보내고자 하는 포트로 연결해주는 방법을 사용하였다. (IP:포트 호출 시 연결이 되어있는 상태에서 진행되었다.)

우선 내가 사용하고 있는 아파치의 설정 파일을 열어서 가상호스트 설정을 추가해주었다.

sudo vi /etc/httpd/conf/httpd.conf
# httpd.conf 하단에 추가
IncludeOptional conf.d/*.conf

<VirtualHost *:80>
  ServerName www.jiggag.com
  DocumentRoot /var/www/html
</VirtualHost>
<VirtualHost *:80>
  ServerName board.jiggag.com
  DocumentRoot /var/www/board
  Proxypass / http://127.0.0.1:1234/ nocanon
  ProxyPassReverse / http://127.0.0.1:1234/
  <Proxy http://127.0.0.1:1234/*>
    Order deny,allow
    Allow from all
  </Proxy>
</VirtualHost>

IncludeOptional으 가상호스트로 추가된 도메인 별로 설정파일을 분리해서 작성된 설정을 명시해주었다. 그 아래에 80포트로 접속하는 경우 기본 도메인(www.jiggag.com)과 서브도메인(board.jiggag.com)으로 접속했을때 보여줄 파일을 DocumentRoot에 각각 명시해주었으며 이제 서브도메인으로 접속 시 실제 연결되어야하는 포트로 프록시 설정을 추가 작성해주었다.

그리고 가상호스트로 추가된 서브도메인 관련 설정파일을 위에 IncludeOptional에서 명시한 경로 아래에 해당 도메인명(board.jiggag.com.conf)으로 설정파일을 추가하였다. 그리고 이 설정파일은 해당 도메인이 연결되어있는 실제 포트와 파일 경로를 작성해주었다.

<VirtualHost *:1234>
  ServerName board.jiggag.com
  DocumentRoot /var/www/board
</VirtualHost>

웹서버 restart/reload

설정에 오류가 없다면 웹서버를 재시작하고 해당 도메인에 접속하면 정상 연결된다.

sudo systemctl restart httpd

reload로 해도 설정값이 적용이 된다. 그럼 restart를 해서 기존 연결을 끊어버리는 것보다는 reload가 더 괜찮은 방법이 되지 않을까?

참고

44bits 유튜브
가상호스트 설정 블로그