2026년 5월 27일, NETCITY 모바일 서버의 메인 응답 지점이 PC 중계서버에서 갤럭시 Wide3 스마트폰으로 옮겨졌다. 겉으로 보이는 주소는 그대로 https://mobile.netcity.co.kr/이지만, 실제 본문을 만들어 내는 내부 서버는 갤럭시 Wide3의 Termux 웹서버다.

PC 중계서버에서 스마트폰 서버로 옮긴 이유
이번 작업의 핵심은 “스마트폰도 실제 웹서버가 될 수 있는가”를 실험 수준이 아니라 공개 서비스 수준으로 끌어올리는 데 있었다. 기존에는 중계서버 PC가 메인 페이지를 직접 담당하고, 스마트폰 서버들은 보조 실험실처럼 연결되는 구조였다. 그러나 운영 관점에서 보면 스마트폰은 저전력, 상시 연결, 배터리 백업, 작은 설치 면적이라는 장점이 있다.
최종 목표는 단순했다. 외부 사용자는 계속 mobile.netcity.co.kr로 접속하고, 내부에서는 주 서버 Nginx가 요청을 받아 갤럭시 Wide3의 Termux Nginx로 넘긴다. 이렇게 하면 공개 HTTPS 인증서와 도메인 처리는 안정적인 주 서버가 맡고, 실제 모바일 서버 화면은 스마트폰이 담당한다.
IP 기준은 192.168.0.197
갤럭시 Wide3는 공유기 내부망에서 192.168.0.197 주소로 맞췄다. 처음에는 유선 이더넷 고정화도 염두에 뒀지만, 이번 공개 기준은 현재 공유기에서 받은 일반 Wi-Fi IP를 기준으로 정리했다. 중요한 것은 주소가 흔들리지 않도록 공유기 예약 또는 단말 고정 설정을 유지하는 것이다.
운영 계정은 Termux의 u0_a252였고, SSH는 8022 포트로 접속했다. 접속 이후 웹 루트는 Termux 홈 아래의 www 디렉터리로 정리했고, 메인 페이지는 index.php에서 라우팅과 포털 화면을 함께 처리하도록 유지했다.
Termux에서 올린 웹 스택
갤럭시 쪽에서는 Nginx, PHP-FPM, MariaDB가 함께 떠 있어야 했다. 공개 포트는 직접 외부에 열지 않고 내부망에서 8083으로 응답하게 했다. 즉, 스마트폰 자체는 내부 오리진 서버이고, 외부 노출은 주 서버가 프록시로 대신한다.
구조를 풀어 쓰면 이렇다. 사용자가 HTTPS로 mobile.netcity.co.kr에 들어오면 주 서버 Nginx가 TLS를 종료한다. 그 다음 요청을 내부 주소 192.168.0.197:8083으로 넘긴다. 갤럭시 Wide3의 Nginx와 PHP-FPM은 그 요청을 받아 현재의 모바일 포털, 서버 링크, 게시판, 개발 안내 페이지를 렌더링한다.
이번 이전에서 PC는 사라진 것이 아니라 역할이 바뀌었다. PC는 공개 HTTPS와 경로별 프록시를 맡고, 갤럭시 Wide3는 모바일 메인 웹서버 역할을 맡는다.
주 서버 Nginx에서 한 일
주 서버의 /etc/nginx/sites-available/mobile 설정은 갤럭시 이전에 맞춰 검수했다. 루트 경로는 갤럭시 Wide3로 넘기고, 별도 스마트폰 서버인 LG-T540 Ubuntu 서버는 /lg-t540-ubuntu-server/ 경로 아래로 분리했다.
결과적으로 https://mobile.netcity.co.kr/은 갤럭시 Wide3 서버가 응답하고, https://mobile.netcity.co.kr/lg-t540-ubuntu-server/는 LG-T540 서버가 응답한다. 두 스마트폰 서버는 하나의 공개 도메인 아래에 있지만, 내부 오리진과 역할은 분리되어 있다.
메인 화면에 이전 사실을 남기다
서버 이전은 내부 설정만 바뀌면 기록으로 남지 않는다. 그래서 갤럭시 메인 페이지 상단에 붉은 이전 안내 박스를 넣었다. 문구는 “중계서버 PC에서 갤럭시 Wide3 Termux 웹서버로 이전했습니다”로 명확히 잡았고, 현재 공개 주소와 내부 응답 주소 192.168.0.197:8083도 함께 표시했다.
이어 현장 사진 IMG_7214.JPG를 웹용 WebP로 변환해 붉은 카드 우측에 배치했다. 원본 사진은 5.6MB였지만, 모바일 첫 화면에 쓰기에는 무거웠다. 그래서 자동 방향 보정과 축소를 거쳐 약 28KB 이미지로 줄이고, 카드 안에서 데스크톱은 우측, 모바일은 본문 아래로 자연스럽게 내려가도록 반응형 CSS를 정리했다.
검수한 항목
이전 작업 뒤에는 단순히 화면만 보는 것으로 끝내지 않았다. 갤럭시 서버의 Nginx, PHP-FPM, MariaDB 프로세스가 살아 있는지 확인했고, https://mobile.netcity.co.kr/이 HTTP/2 200으로 응답하는지 확인했다. LG-T540 경로도 직접 오리진과 공개 경로의 응답을 비교해 프록시가 제대로 붙는지 확인했다.
마지막으로 메인 페이지에 들어간 사진 URL도 200 응답을 확인했고, 데스크톱과 모바일 화면에서 붉은 카드 레이아웃이 무너지지 않는지 헤드리스 브라우저 스크린샷으로 점검했다. 운영 기록용 백업도 남겼다. 갤럭시 메인 파일은 수정 전 백업을 따로 보관했고, 주 서버 Nginx 설정도 변경 전 백업 파일을 남겨 두었다.
남은 운영 포인트
스마트폰 서버는 재미있는 실험이지만 운영에서는 몇 가지 조건을 계속 봐야 한다. 첫째, 내부 IP가 흔들리지 않아야 한다. 둘째, Termux의 웹 프로세스가 재부팅 뒤 자동으로 살아나는 구조가 필요하다. 셋째, 스마트폰 배터리와 발열, 충전 상태를 장시간 관찰해야 한다. 넷째, 공개 도메인과 내부 오리진 사이의 프록시 로그를 주기적으로 확인해야 한다.
이번 구축은 “스마트폰으로 웹서버를 띄웠다”에서 한 걸음 더 간 작업이다. 공개 도메인, HTTPS, 경로별 프록시, 다중 스마트폰 서버, 메인 화면 기록까지 연결했기 때문이다. NETCITY 모바일 서버는 이제 PC에 매달린 임시 페이지가 아니라, 갤럭시 Wide3가 직접 응답하는 작은 모바일 데이터센터가 됐다.