Gollum을 이용한 위키 구축 및 호스팅 (2)

Oct 19, 2017 00:00 · 1816 words · 4 minutes read gollum wiki docker godaddy digitalocean cloudflare

지난 포스트에서는 Gollum과 Docker를 이용해서 위키 애플리케이션을 구축해보았다. 이번 포스트에서는 이 위키를 인터넷에 호스팅 해보자.

사용할 서비스들

도메인 구입

고대디 GoDaddy에 회원 가입을 하고 지불 정보를 입력한다. 그리고 원하는 도메인을 구입한다.

구입 후에 특별히 설정할 것은 없다. 클라우드플레어에 도메인을 등록한 뒤에 고대디 설정의 네임서버를 변경해주면 되는데, 이는 후에 설명한다.

애플리케이션 호스팅

애플리케이션 호스팅은 저렴하고 사용법이 간단한 디지털오션 DigitalOcean을 사용해보자.

서버 생성

회원 가입을 하고 지불 정보를 입력한 후 디지털 오션의 서비스 단위인 Droplet을 생성해보자.

create-droplet

생성 화면으로 들어가면 먼저 이미지를 선택해야 한다. 우리는 도커로 애플리케이션을 구동해야 하므로 One-click apps 메뉴에서 도커 이미지를 선택한다.

choose-image

가격 및 사양을 골라야 하는데, 그냥 제일 싼 것으로 하자(…)

choose-size

데이터 센터 지역은 원하는대로 선택한다. 본인은 제일 가까워 보이는 싱가포르로 선택했다.

choose-region

생성할 서버에 접속할 수 있게 ssh 키를 등록하는 단계다. New SSH Key 버튼을 누르고 원하는 장비-계정의 공개키를 복사-붙여넣기 해서 등록해준다.

add-sshkey

마지막으로 같은 설정으로 생성할 서버의 갯수와 호스트 이름을 정해서 서버 생성을 완료하면 된다.

choose-hostname

서버에 애플리케이션 설치

이제 Droplets 메뉴로 들어가면 생성한 서버가 보일텐데, 거기 나와있는 Public IP 주소로 접속한다. 최초 접속 계정은 root이다.

Droplet을 생성하면 22, 80, 443을 제외한 모든 포트가 막혀있다.

서버에 접속하면 기본 개발 도구와 도커 관련 프로그램이 모두 설치되어 있는 것을 확인 할 수 있다. 이제 도커 이미지만 있으면 된다. 도커 이미지 빌드를 위해서 이전 포스트에서 개발했던 골룸 위키의 저장소를 클론한다.

git clone https://url.of/your/repo.git

클론한 디렉토리의 이름을 wiki로 변경하고 디렉토리 안으로 이동해서 이미지를 빌드한다. 개발 환경과 동일하다.

docker build -t gollum .

빌드가 완료되면 역시 개발 환경과 동일하게 컨테이너를 실행한다.

docker-compose up -d

docker-compose.yml의 이미지 이름, 볼륨 마운팅, 포트 매핑 설정에 유념해서 빌드/실행을 진행한다.

브라우저에서 Public IP로 접속해보면 위키 애플리케이션을 확인 할 수 있을 것이다.

SSL 적용

클라우드플레어 Cloudflare를 이용하면 무료로 SSL을 적용할 수 있다. 주의할 점은, 지금 적용하려하는 방식(Flexible SSL)은 모든 통신의 프로토콜을 HTTPS로 만드는 것은 아니라는 점이다.

  • 클라이언트와 Cloudflare 사이에는 HTTPS 통신을 한다.
  • Clouldflare와 디지털오션 서버 사이에는 HTTP 통신을 한다.

물론, 디지털오션 서버에 SSL 인증서를 설치하고 HTTPS 통신을 할 수 있도록 설정하면, Cloudflare와 디지털오션 서버 사이에도 HTTPS 통신이 가능하게 만들 수 있다. 그러나 이 포스트에서는 무료로 쉽게 할 수 있는 방법만 소개하려고 한다.

네임서버 설정

회원 가입 후 Add Site 버튼을 눌러 구입한 도메인을 등록한다.

add-site

등록이 완료되면 Value 필드에 디지털오션의 Public IP를 넣어준다.

pointsto-publicip

진행하다 보면 Cloudflare의 네임서버 주소를 알려주면서 도메인 프로바이더의 네임서버를 변경하라는 안내가 나올 것이다. 보통 2개인데, 이 2개의 네임서버를 아까 도메인을 구입했던 고대디 DNS 설정으로 가서 등록해주어야 한다.

고대디 접속 > 내 도메인 관리 > 구입한 도메인 선택 > DNS 관리로 들어간다. 그럼 레코드 섹션 밑에 네임서버 섹션이 있는데 변경 버튼을 누른다.

godaddy-dns

위 화면이 뜨면 네임서버 유형을 사용자 정의로 변경하고 Cloudflare에서 알려준 네임서버 주소를 모두 등록한다. 기존에 있던 네임서버 주소는 모두 삭제한다.

SSL 적용과 HTTPS 강제

다시 Cloudflare로 돌아와서 등록한 도메인을 선택하고 Crypto 메뉴를 선택한다. SSL 방식을 Flexible로 설정해준다.

cloudflare-crypto

마지막으로 HTTP 통신이 들어오면 HTTPS로 리다이렉트하기 위해 Page Rule을 설정해준다. Page Rules 메뉴를 선택하고 http://로 시작하는 도메인을 입력하고 Always Use HTTPS 룰을 설정해준다.

cloudflare-pagerules

도메인 뒤에 /*을 입력해서 모든 페이지 주소에 대해서 HTTPS를 강제한다.

적용한 SSL은 생각보다 시간이 꽤 지나야 활성화된다. 본인의 경우는 대략 하루쯤 걸렸던거 같다.

결론

블로그는 타임라인 형식이라 정보가 구조화 되지 않는 느낌이 있었다. 그래서 위키를 만들어 보았는데, 생각보다 여러가지 작업이 필요해서 따로 정리하게 되었다. 누군가에게는 도움이 되었으면 좋겠다. 이렇게 만든 본인의 위키는 이 곳 https://wiki.qodot.me이다. 다 만들고 정리까지 하고 나니 상당이 뿌듯하다 ㅜㅜ