← 전체 글로 돌아가기

서버 운영

301 리다이렉트가 외부에서 안 될 때 체크하기

도메인과 Nginx 설정에서 301 리다이렉트가 작동하지 않을 때. 인증서, DNS, HTTP 상태 코드를 차례로 확인한다.

301 리다이렉트는 SEO에 영향을 주는 중요한 기능이다. 도메인 변경, URL 구조 개편, 프로토콜 업그레이드(HTTP→HTTPS) 시 사용된다. 그런데 제대로 설정했다고 생각해도 외부에서 접속했을 때 작동하지 않을 수 있다. 로컬과 운영의 차이, 캐시, 프록시 규칙이 겹쳐있을 수 있기 때문이다.

상황 요약하기

구체적으로 어디서 어디로 리다이렉트되어야 하는가? old.example.com → example.com? /old-path → /new-path? 또는 HTTP → HTTPS?

DNS와 인증서 확인

リダイレクト가 작동하려면 DNS가 올바르게 해석되어야 한다. 이전 도메인도 현재 서버를 가리켜야 한다.

dig old.example.com
dig example.com

# 인증서 확인
curl -I https://old.example.com
curl -I https://example.com

Nginx/프록시 규칙 확인

Nginx 설정에서 리다이렉트 규칙이 제대로 정의됐는지 확인한다.

  • 확인할 것: 인증서, DNS 응답, 프록시 규칙
  • 비교 기준: 정상적인 리다이렉트 설정
  • 기록할 것: dig 결과, curl 응답 헤더, Nginx 설정

HTTP 상태 코드 검증

301(Moved Permanently)이 반환되는지 302(Found)는 아닌지 확인한다. 각각 캐싱 방식이 다르기 때문이다.

curl -I old.example.com
# HTTP/1.1 301 Moved Permanently
# Location: https://example.com

가장 작은 실험

전체 리다이렉트 규칙을 한 번에 테스트하지 말고, 가장 간단한 경우부터 시작한다.

# 간단한 경로 리다이렉트부터 확인
sudo nginx -t  # 설정 문법 검사

캐시 확인

이전 리다이렉트가 브라우저 캐시에 남아있을 수 있다. Private 브라우저나 다른 기기에서 테스트한다.

프록시 규칙 검증

여러 프록시나 로드 밸런서를 거치면 리다이렉트가 손실될 수 있다. 각 계층에서 정확히 어떻게 처리되는지 추적한다.

완료 기준

  1. DNS가 올바르게 해석되는가
  2. HTTPS 인증서가 유효한가
  3. Nginx에서 301 상태 코드를 반환하는가
  4. Location 헤더가 정확한 URL을 가리키는가

SEO 리다이렉트는 검색 엔진이 올바르게 해석해야 하므로, 상태 코드와 Location 헤더가 정확해야 한다.