← 전체 글로 돌아가기

서버 운영

관리자 API가 로컬에선 되는데 서버에선 실패할 때

포트, 권한, 프로세스 상태를 순서대로 확인하면 운영 서버의 API 문제는 대부분 분명해진다.

개발 환경에서 관리자 API를 테스트할 땐 완벽하다. curl 요청도 되고, 권한도 제대로 확인되고, 응답도 나온다. 그런데 운영 서버에 올리면 조용히 실패한다. 응답도 안 오거나, 403 권한 에러가 나거나.

이런 문제는 보통 화면 하나만 봐서는 원인을 찾을 수 없다. 로그와 응답을 함께 봐야 한다.

운영 환경의 기본 상태 확인

sudo ss -lntp
df -h
sudo journalctl -n 80

어떤 포트가 열려 있는지, 정말 내가 예상한 포트인지. 디스크 여유가 있는지. 시스템 로그에 에러가 있는지.

포트와 프로세스

API 서버가 정말로 예상한 포트에서 돌아가고 있는가? 포트가 바뀌진 않았는가? 여러 버전의 앱이 동시에 돌아가면서 포트 충돌이 생기진 않았는가?

권한 확인

관리자 API는 특별한 권한이 필요할 수 있다. 로컬에선 개발자 계정으로 돌아가지만, 서버는 다른 유저가 앱을 실행한다. 그 유저에게 필요한 권한이 있는가?

정확히 어느 단계에서 실패하는지가 핵심이다. 먼저 같은 요청을 다시 시도해본다. 같은 방식으로 실패하는가? 로그에서 뭐가 달라졌는지 기록한다. 한 가지씩 수정한 후 다시 확인한다. 그러면 비슷한 증상이 나올 때 이미 절반을 안다.