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 |
로그 파일을 다시 엽니다. (로그 로테이션 시 유용) |
설정 관리 및 테스트
가장 중요한 명령어 중 하나입니다. 설정을 변경한 후에는 반드시 reload
나 restart
전에 이 명령어로 문법 오류를 확인해야 합니다.
명령어 | 설명 |
---|---|
sudo nginx -t |
NGINX 설정 파일(nginx.conf 및 포함된 모든 파일)의 문법이 올바른지 테스트합니다. |
Sheets로 내보내기
💡 활용 예시:
sudo nano /etc/nginx/sites-available/default
명령어로 설정 파일을 수정합니다.sudo nginx -t
명령어를 실행하여 "syntax is ok", "test is successful" 메시지가 나오는지 확인합니다.문법 오류가 없다면,
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 #리눅스 #서버