← 전체 글로 돌아가기

서버 운영

301 리다이렉트 로그가 계속 쌓일 때 체크할 것

301 리다이렉트가 과도하게 발생하면 서버 로그가 급증한다. Nginx 프록시 규칙, DNS 설정, 캐시 상태를 확인하는 순서를 정리했다.

같은 증상이 반복되면 확인 순서를 고정한다

Nginx에서 301 리다이렉트 로그가 계속 쌓인다는 건 트래픽이 반복적으로 같은 경로로 흐르고 있다는 뜻이다. 한 번의 수정으로 해결하려고 하면 오히려 문제를 키울 수 있으니, 단계별로 확인하는 습관이 필요하다.

트래픽 경로 문제의 핵심은 단편적인 증상이 아니라 전체 요청 흐름을 추적하는 것이다. HTTP 상태 코드, 프록시 규칙, DNS 응답, 캐시 상태를 차례대로 확인해야 원인을 찾을 수 있다.

먼저 상태 코드를 확인한다

리다이렉트 로그를 분석할 때, 가장 먼저 할 일은 어떤 상태 코드가 반복되는지 파악하는 것이다:

  • 먼저 볼 값: HTTP 상태 코드 (301, 302, 308 등)
  • 함께 비교할 값: 정상 상태에서는 몇 개의 리다이렉트가 나타나는가
  • 남겨둘 기록: nginx 설정, 요청 로그, DNS 레코드

Nginx 프록시 규칙을 의심한다

301 리다이렉트가 무한 루프처럼 반복된다면, Nginx의 프록시 규칙이 자기 자신으로 요청을 되돌리고 있을 가능성이 높다. 프록시_pass 설정이 올바른지, rewrite 규칙이 충돌하지 않는지 확인해야 한다:

dig example.com
curl -I https://example.com
sudo nginx -t

이 명령들로 DNS 응답, 실제 리다이렉트 경로, Nginx 설정 문법을 검증할 수 있다.

SSL/TLS 인증서 문제도 의심한다

특정 도메인으로의 요청이 계속 리다이렉트된다면, SSL/TLS 인증서가 올바른 도메인으로 발급되지 않았을 가능성도 있다. 인증서 이름과 실제 요청 도메인이 일치하는지 확인해야 한다.

브라우저 캐시도 원인이 될 수 있다

301은 영구 리다이렉트이므로 브라우저가 캐시한다. 새 규칙을 적용한 후에도 캐시 때문에 같은 경로로 요청이 가는 것처럼 보일 수 있다. 시크릿 창에서 테스트하거나 캐시를 명시적으로 삭제해서 테스트해야 한다.

단계별로 검증한다

같은 문제가 반복되는 것을 방지하려면 확인 순서를 고정한다:

  1. 원래 증상이 같은 조건에서 다시 나타나는지 확인한다
  2. DNS 응답, 리다이렉트 경로, Nginx 설정에서 바뀐 부분을 명확히 설명할 수 있는지 확인한다
  3. 공개 도메인에서의 실제 동작을 최종 확인한다

기록을 남긴다

301 문제를 해결한 후, 어떤 Nginx 규칙이 리다이렉트를 일으켰는지, 어떻게 수정했는지 짧게 정리해두면 다음 번 유사한 문제를 빠르게 처리할 수 있다.