서버 운영
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 브라우저나 다른 기기에서 테스트한다.
프록시 규칙 검증
여러 프록시나 로드 밸런서를 거치면 리다이렉트가 손실될 수 있다. 각 계층에서 정확히 어떻게 처리되는지 추적한다.
완료 기준
- DNS가 올바르게 해석되는가
- HTTPS 인증서가 유효한가
- Nginx에서 301 상태 코드를 반환하는가
- Location 헤더가 정확한 URL을 가리키는가
SEO 리다이렉트는 검색 엔진이 올바르게 해석해야 하므로, 상태 코드와 Location 헤더가 정확해야 한다.