여기서는 멈추세요
- nginx -t가 실패하거나 활성 설정에서 변경 대상 server block을 확정하지 못하면 reload하지 않습니다.
- 설정 출력에 인증정보가 포함됐다면 외부 공유 전에 제거하고 파일 권한을 재점검합니다.
REQUEST ROUTING
SAFE OPERATING BOUNDARY
SITE_CONFIG.before-haru-change를 원래 위치에 복원하고 nginx -t가 통과한 경우에만 reload한 뒤 이전 응답을 재확인합니다.
BEFORE YOU START
CHECK THE BRANCH
Host가 server_name과 일치하지 않으면 해당 주소·포트의 default server가 요청을 처리할 수 있으므로 DNS보다 활성 listen 구성을 먼저 대조합니다.
location 우선순위, root와 alias 차이, try_files의 마지막 대상과 실제 파일 권한을 확인합니다.
NGINX rewrite뿐 아니라 upstream이 인식하는 scheme·Host와 프록시 헤더를 확인하고 전체 Location 체인을 기록합니다.
FOLLOW THE FLOW
브라우저 캐시보다 curl로 상태 코드, Server와 Location 헤더를 확인합니다.
curl -sv -o /dev/null https://example.com/pathcurl -sS -o /dev/null -D - -L --max-redirs 10 https://example.com/pathGET 요청의 각 응답 헤더를 출력하며 본문은 저장하지 않습니다.404를 어느 서버가 보냈는지, Location이 같은 두 URL 사이를 반복하는지 확인합니다.
요청한 scheme·Host·port·path와 각 응답 코드를 기록합니다.
파일 하나가 아니라 include가 펼쳐진 활성 설정을 기준으로 확인합니다. 외부 공유 전 비밀값을 가립니다.
sudo nginx -tsudo nginx -Tsudo nginx -T 2>&1 | grep -nE 'listen|server_name|root|alias|location|try_files|rewrite|return'같은 listen 주소·포트의 default_server, 중복 server_name과 실제 include 순서를 확인합니다.
요청을 받아야 할 server block과 location을 정확히 지정합니다.
SERVER_IP를 실제 NGINX 주소로 바꿔 DNS·CDN과 NGINX 내부 선택 문제를 분리합니다.
curl -sv --resolve example.com:80:SERVER_IP http://example.com/path -o /dev/nullcurl -sv --resolve example.com:443:SERVER_IP https://example.com/path -o /dev/null직접 연결은 정상인데 일반 요청만 실패하면 DNS·CDN·LB 범위이고, 직접 연결도 잘못되면 NGINX server 선택 문제입니다.
server_name과 인증서 SNI, default server를 함께 대조합니다.
장애 요청을 한 번만 재현하고 같은 시각의 access·error 로그를 확인합니다.
sudo tail -n 120 /var/log/nginx/error.logsudo tail -n 120 /var/log/nginx/access.lognamei -l /var/www/example/pathrewrite or internal redirection cycle은 잘못된 URI 재처리 흐름을 뜻합니다. error log의 location과 try_files 대상을 설정에 연결합니다.
바꿀 지시어 한 곳과 기대 상태 코드·Location을 정합니다.
SITE_CONFIG를 실제 변경 파일로 바꾸고 nginx -t가 실패하면 reload하지 않습니다.
sudo cp -a /etc/nginx/sites-available/SITE_CONFIG /etc/nginx/sites-available/SITE_CONFIG.before-haru-changesudo nginx -tsudo systemctl reload nginxcurl -sv --resolve example.com:443:SERVER_IP https://example.com/path -o /dev/null예상 server와 location에서 의도한 상태 코드가 나오고 redirect 횟수와 error log가 정상화되어야 합니다.
문제가 생기면 백업 파일을 복원하고 nginx -t 통과 후 다시 reload합니다.
PRIMARY REFERENCES
배포판과 버전에 따라 옵션·로그 위치가 다를 수 있습니다. 실행 전 서버의 --help와 로컬 매뉴얼을 함께 확인하세요.