<

카테고리 없음

NGINX 서버 제어 명령어 (Cheat Sheet)

hanseongjun 2025. 7. 24. 03:55
728x90
반응형

NGINX 명령어는 주로 nginx 실행 파일 자체를 이용하거나, systemd를 관리하는 systemctl 명령어를 통해 실행합니다. 일반적으로 systemctl 사용이 권장됩니다.

systemctl 사용 (권장 방식)

이 명령어들은 sudo 권한이 필요합니다. Ubuntu와 같은 최신 리눅스 배포판의 표준 방식입니다.

명령어 설명
sudo systemctl start nginx NGINX 서비스를 시작합니다.
sudo systemctl stop nginx NGINX 서비스를 중지합니다.
sudo systemctl restart nginx NGINX 서비스를 재시작합니다. (강제 종료 후 재시작)
sudo systemctl reload nginx NGINX 설정을 다시 불러옵니다. (서비스 중단 없음)
sudo systemctl status nginx NGINX 서비스의 현재 실행 상태(활성/비활성, 로그 등)를 확인합니다.
sudo systemctl enable nginx 시스템 부팅 시 NGINX가 자동으로 시작되도록 활성화합니다.
sudo systemctl disable nginx 시스템 부팅 시 NGINX가 자동으로 시작되지 않도록 비활성화합니다.

nginx 실행 파일 직접 사용

이 방식은 NGINX 프로세스에 직접 신호(signal)를 보내 제어합니다.

명령어 설명
sudo nginx NGINX를 시작합니다. (설정 파일을 읽어 마스터/워커 프로세스를 실행)
sudo nginx -s stop NGINX를 즉시 종료합니다. (빠른 종료)
sudo nginx -s quit 현재 처리 중인 요청을 모두 마친 후 안전하게 종료합니다. (Graceful shutdown)
sudo nginx -s reload 설정 파일을 다시 불러옵니다. (systemctl reload와 동일)
sudo nginx -s reopen 로그 파일을 다시 엽니다. (로그 로테이션 시 유용)

설정 관리 및 테스트

가장 중요한 명령어 중 하나입니다. 설정을 변경한 후에는 반드시 reloadrestart 전에 이 명령어로 문법 오류를 확인해야 합니다.

명령어 설명
sudo nginx -t NGINX 설정 파일(nginx.conf 및 포함된 모든 파일)의 문법이 올바른지 테스트합니다.

Sheets로 내보내기

💡 활용 예시:

  1. sudo nano /etc/nginx/sites-available/default 명령어로 설정 파일을 수정합니다.

  2. sudo nginx -t 명령어를 실행하여 "syntax is ok", "test is successful" 메시지가 나오는지 확인합니다.

  3. 문법 오류가 없다면, sudo systemctl reload nginx를 실행하여 서비스 중단 없이 변경된 설정을 적용합니다. 만약 오류가 있다면, NGINX는 reload를 거부하여 서비스 장애를 예방합니다.

💡 restart vs reload 명확한 차이점

이 둘의 차이를 이해하는 것은 매우 중요합니다.

  • restart (재시작)

    • 동작 방식: 기존 NGINX의 마스터(Master) 프로세스와 모든 워커(Worker) 프로세스를 완전히 종료시킨 후, 설정 파일을 처음부터 다시 읽어 새로운 마스터/워커 프로세스를 시작합니다.

    • 영향: 프로세스를 완전히 껐다 켜기 때문에, 그 짧은 순간 동안 서비스 중단(downtime)이 발생할 수 있습니다.

    • 사용 시점: NGINX 코어 모듈 변경, 포트 바인딩 변경 등 설정을 다시 읽는 것만으로는 적용되지 않는 큰 변경 사항이 있을 때 사용합니다.

  • reload (다시 불러오기) 🚀

    • 동작 방식: 기존 마스터 프로세스는 그대로 유지한 채, 새로운 설정 파일을 읽어 새로운 워커 프로세스를 실행합니다. 새로운 워커 프로세스가 정상적으로 뜨면, 기존 워커 프로세스들에게 현재 진행 중인 요청을 모두 처리하고 종료하라고 지시합니다. 이 과정에서 서비스 중단이 없습니다(Zero-downtime).

    • 영향: 서비스 중단 없이 설정을 적용할 수 있어 안정적입니다.

    • 사용 시점: 리버스 프록시 설정 변경, location 블록 수정 등 대부분의 설정 변경 시 사용합니다.

결론: 설정 변경 후에는 sudo nginx -t로 문법을 확인하고, 문제가 없으면 sudo systemctl reload nginx를 사용하는 것이 일반적이고 안전한 운영 방식입니다.


근거 자료

  • NGINX 공식 문서 (Controlling NGINX): NGINX 시작, 중지, 설정 리로드에 대한 공식 가이드입니다.

  • DigitalOcean 튜토리얼: NGINX 설치 및 systemctl을 이용한 관리 방법을 설명하는 실용적인 문서입니다.

  • Linux systemctl man 페이지: systemctl 명령어 자체에 대한 공식 설명서입니다. 터미널에서 man systemctl로 확인할 수 있습니다.

#nginx #리눅스 #서버

728x90
반응형
LIST