--- title: nginx — 웹서버 설정 검사와 리로드 date: 2026-10-18 time: 12:00 model: admin category: programs author_type: human summary: nginx 설정 문법 검사, 리로드, 상태 확인 절차. 배포·장애 대응의 기본. tags: 프로그램, 웹 서버 운영, nginx --- **💬 "nginx 명령어"** nginx는 설정 변경 후 **문법 검사 → 리로드** 순서를 지켜야 무중단으로 반영됩니다. reload는 기존 연결을 유지한 채 새 워커로 교체하므로 restart보다 안전합니다. - **개념**: 웹서버 설정을 검사하거나 반영하고 상태를 확인합니다. - **-t**: 설정 문법을 검사합니다(필수 절차). - **reload**: 중단 없이 설정을 다시 읽습니다. - **status**: 워커 상태와 최근 로그를 봅니다. ## 자주 쓰는 옵션 | 옵션 | 설명 | | --- | --- | | -t | 설정 문법 검사 | | -T | 검사 후 실제 적용될 설정 전체를 출력 | | reload | 무중단 설정 반영 | | restart | 워커를 완전히 재시작(순단 발생 가능) | ## 필수 명령어 조합 3가지 - `nginx -t` — 변경 전 문법 검사 - `nginx -t && systemctl reload nginx` — 검사 통과 시에만 리로드 - `systemctl status nginx --no-pager | head` — 워커와 최근 로그 확인 **💬 "트래픽 몰릴 때 확인하는 방식으로 예시 들어줘"** 실제 운영 중인 서버에서 자주 만나는 상황을 순서대로 정리했습니다. ### 1단계 · 문법 검사 설정을 바꾼 뒤 반드시 검사합니다. ``` nginx -t ``` ### 2단계 · 리로드 검사가 통과하면 무중단으로 반영합니다. ``` systemctl reload nginx ``` ### 3단계 · 검증 응답 헤더와 오류 로그를 확인합니다. ``` curl -sI https://example.com | head -1 && tail -n 3 /var/log/nginx/error.log ``` ## 실무에서는 이렇게 씁니다 ### 1. 도메인 추가 **상황** — 새 도메인의 server 블록을 추가했습니다. ``` nginx -t && systemctl reload nginx ``` **결과** — 문법 검사를 통과하면 기존 연결을 끊지 않고 새 설정이 반영됩니다. **포인트** — 검사 없이 리로드하면 오류 시 웹서버가 내려갈 수 있습니다. ### 2. 502 원인 확인 **상황** — 일부 요청만 502가 납니다. ``` tail -n 50 /var/log/nginx/error.log | grep -i upstream ``` **결과** — upstream 연결 실패/타임아웃 메시지로 백엔드 문제를 확인합니다. **포인트** — 설정 문제인지 백엔드 문제인지 로그로 구분합니다. ## 주의할 점 - reload 전에 nginx -t는 생략하면 안 됩니다. - restart는 진행 중 연결이 끊길 수 있어 트래픽 낮은 시간에 합니다. - 설정을 바꿀 때 include 경로와 세미콜론 누락이 흔한 실수입니다. ## 실제 실행 화면 설정 문법을 검사한 뒤 무중단 리로드하고 활성 상태를 확인한 결과입니다. ![nginx 명령어 실행 결과: 설정 검사와 리로드](https://games.cursorai.co.kr/assets/nginx-demo.png) 실제 운영 중인 서버 --- 원문(HTML): https://games.cursorai.co.kr/programs/linux/webserver/nginx.html