h57studio / 02 /

서버 한 대에 사이드 프로젝트 여러 개 올리기

서버 한 대에 사이드 프로젝트 여러 개 올리기

홈페이지, 대화 앱, 아카이브, 웹게임 두 개가 서버 한 대에 있음. 서브도메인으로 나누고, 포트를 장부에 적고, 덮어쓰기 사고를 두 번 겪은 기록.

루트는 홈페이지, 앱은 서브도메인

처음에는 h57studio.com이 곧 Mbtigram이었음. 8월 31일에 루트를 비워 이 홈페이지로 바꾸고, 앱은 서브도메인으로 하나씩 내보냈음. mbtigram., sidearchive., game., stock.이 그렇게 생겼음.

이유는 두 가지. 홈페이지를 앱 안에 넣어 두면 회사 소개 한 줄을 고칠 때마다 앱을 다시 배포해야 함. 그리고 앱이 죽으면 홈페이지도 같이 죽음. 지금은 홈페이지가 HTML 파일 몇 장이라 앱 상태와 상관없이 뜸.

옛 주소는 새 자리로 넘겨 뒀음. 앱의 약관 주소가 스토어에 등록돼 있어서 그 주소가 죽으면 앱 심사에서 걸림.

DNS 설정과 하루 대기

도메인에 와일드카드 레코드(*.h57studio.com)를 넣어 둬서 앱을 늘려도 DNS는 안 건드림. 서버에 새 이름을 받을 설정만 더하면 됨.

문제는 새 이름이 하루 동안 안 뜰 수 있다는 것. 레코드가 생기기 전에 그 이름을 한 번이라도 물어본 DNS 서버는 "없음"이라는 답을 최대 24시간 기억함. 실제로 테스트 폰이 여기 걸려서 서버를 한참 의심했는데, 폰의 개인 DNS를 바꾸니 바로 떴음. 지금은 서버를 의심하기 전에 DNS를 건너뛰고 서버에 직접 물어보는 것부터 함.

curl --resolve 새이름.h57studio.com:443:서버주소 https://새이름.h57studio.com/

이게 200이면 서버는 멀쩡한 거고, 기다리면 됨.

포트 장부

앱마다 서버 안쪽 포트를 하나씩 쓰고, 바깥으로는 웹 서버만 열려 있음. 포트가 겹치면 두 번째 앱이 조용히 안 뜸. 오류가 눈에 잘 안 띄는 곳에 찍혀서 한참 뒤에야 알게 됨.

그래서 쓰는 포트를 장부 파일에 적어 두는데, 장부도 틀릴 수 있었음. "비어 있음"이라고 적어 둔 포트를 끝난 줄 알았던 일회용 컨테이너가 물고 있었음. 새 서비스를 다음 번호로 옮기고, 장부의 그 칸에는 "쓰지 마세요"와 이유를 적었음.

덮어쓰기 사고 두 번

HTTPS가 사라졌음. 웹 서버 설정을 고쳐서 로컬 사본으로 통째로 덮어썼는데, 서버 파일에는 인증서 도구가 직접 써 넣은 HTTPS 부분이 있었고 로컬 사본에는 없었음. 덮는 순간 홈페이지 대신 앱 화면이 떴음. 5분 만에 되살렸고, 지금은 설정을 덮기 전에 서버 파일과 먼저 비교함.

앱 목록 한 줄이 사라졌음. 여러 작업이 서버의 홈페이지 파일과 로컬 사본을 번갈아 고쳤음. 서버에서만 넣은 앱 한 줄이 이틀 뒤 로컬 사본으로 덮어쓰면서 없어졌음. 원래 설명 문구는 어디에도 남아 있지 않아서 새로 써야 했음.

그 뒤로 두 가지를 바꿨음. 홈페이지를 앱 저장소에서 떼어 내 따로 뒀음. 그리고 올리는 스크립트가 서버 파일을 마지막으로 올린 버전과 먼저 대조해서, 누가 서버에서 직접 고친 게 있으면 올리지 않고 멈추게 했음. 멈추면 서버 쪽 변경을 먼저 받아 와 기록하고 다시 올림.