서버 운영
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은 영구 리다이렉트이므로 브라우저가 캐시한다. 새 규칙을 적용한 후에도 캐시 때문에 같은 경로로 요청이 가는 것처럼 보일 수 있다. 시크릿 창에서 테스트하거나 캐시를 명시적으로 삭제해서 테스트해야 한다.
단계별로 검증한다
같은 문제가 반복되는 것을 방지하려면 확인 순서를 고정한다:
- 원래 증상이 같은 조건에서 다시 나타나는지 확인한다
- DNS 응답, 리다이렉트 경로, Nginx 설정에서 바뀐 부분을 명확히 설명할 수 있는지 확인한다
- 공개 도메인에서의 실제 동작을 최종 확인한다
기록을 남긴다
301 문제를 해결한 후, 어떤 Nginx 규칙이 리다이렉트를 일으켰는지, 어떻게 수정했는지 짧게 정리해두면 다음 번 유사한 문제를 빠르게 처리할 수 있다.