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
systemctlman 페이지:systemctl명령어 자체에 대한 공식 설명서입니다. 터미널에서man systemctl로 확인할 수 있습니다.
#nginx #리눅스 #서버