계기

HUGO로 블로그를 구축한지 며칠되지 않아서 문제점을 발견했었다.
Hugo 자체의 문제라기 보다는 내가 운영하고자 하는 환경에 맞게 추가 설정이 필요했었다.

  • Oracle Freetier(개인 서버)
  • Github Pages

이렇게 두개의 서버 환경에서 동일한 블로그를 운영하고 싶었고 그렇게 구축을 진행하였다.
처음에는 동일한 소스로 동일한 내용을 보여주기에 잘 구축이 되었다고 생각했었다.
그러다 구글 서치 콘솔 연동 작업 등을 하면서 같은 설정 파일만으로는 각 서버의 설정을
해주기가 어렵다고 판단이 되었다.

  • Hugo Config 내용 중 baseURL
  • robots.txt
  • Sitemap
  • Google Analytics 연동

이 4가지 설정값 만큼은 따로따로 가야한다고 판단이 들었다.
특히 baseURL의 경우에는 Sitemap 생성에도 영향을 주고 구글 서치 콘솔에서
집계도 제대로 안되는 문제가 있었다.


분리

config.toml

설정을 어떻게 나눠야할지.. 관련 문서를 찾아보려고 했지만 마땅한 키워드도 생각나지 않고
고민을 계속하다가 결국 그냥 Config 파일을 두개로 분리하기로 결정하였다.

  • config.toml : Oracle Freetier의 Hugo Config
  • config_github.toml : Github Pages의 Hogo Config

공식적으로 설정을 하는 방법이 있는지는 정확히는 모르겠지만 ..
현재 나는 두 서버의 도메인이 다르기 때문에 baseURL 설정을 위해서라도 분리하는게
맞다고 보였다.

...
baseURL = "https://thirdy.me"
# baseURL = "https://thirdnsov.github.io" #Github 주소
languageCode = "ko-KR"
defaultContentLanguage = "ko"
googleAnalytics = ""
# googleAnalytics = "" #Github용 수집 ID
#publishDir = "public_github" #Github용 Output Path
enableRobotsTXT = true
...

Config를 분리함으로써 복잡하게 생각할 필요 없이 그저 hugo 명령만 한번 더 해주면 되서
오히려 편하게 관리할 수 있는 느낌도 든다.
지금은 동일한 테마와 동일한 내용으로 구성이 되어있지만 혹시라도 나중에 서로 다른 테마 적용이나
다른 구성으로 가려고 했을 때 좀 더 수월할 거 같은 느낌…?

무튼 이렇게 Config 파일 분리로 인해 baseURL, Sitemap, Google Analytics 연동 문제를
한번에 해결할 수 있었다.

robots.txt

robots.txt도 사실 Config 분리에서 해결될 수 있었지만 이전 Jekyll 블로그를 마이그레이션 하면서
이전 robots.txt가 static 디렉토리에 남아있어 내용이 Github Pages에서 사용하던 robots.txt가
그대로 다른 서버에도 적용되고 있었다.

이것도 분리해서 관리를 할까 .. 공식 문서에서 알려주는 템플릿을 작성해서 사용할까 고민이 되었다.
근데 생각해보니 현재 상황에서는 딱히 bot을 막을 이유도 없고 일부 막을 부분도 없어서
단순히 그냥 .. 자유롭게 접근할 수 있게 설정을 해버렸다.

  • config.toml / config_github.toml 내용 중
    ...
    enableRobotsTXT = true
    ...
    

저 한줄이 설정 끝. 그리고 static에 있던 robots.txt는 삭제.
enableRobotsTXT 옵션을 주게 되면 구성해놓은 템플릿에 맞게 robots.txt가 생성된다.
(자동 생성 및 고정된 내용이라면 그냥 static 디렉토리에 넣어둬도 상관 없을듯)
아무런 설정을 하지 않았기 때문에 기본값을 가진 robots.txt가 생성되는 것을 확인했다.

#robots.txt

User-agent: *

마무리

하나의 서버 구성에서 운영하는 상황이었다면 고민할 필요가 없었던 부분일테지만
두 개의 서버 환경에서 서로 다른 설정으로 같은 내용을 보여주고자 하면서 발생했던 것 같다.
스크립트를 활용해서 복잡하게 해결을 했어도 되었겠지만 분리만으로도 나름 깔끔하게 잘 된거 같아서
스스로는 나름 만족하고 있다.
아직은 Hugo를 제대로 모르기도 하고 그냥 가지고 있는 아는 범위 내에서 해결을 하려고만 하고 있는 중..
추후에 다른 방법이 확인된다면 그때 다시 바꿔도 되지 않을까.. ?

참고 링크

Robots.txt file