Nginx 튜 토리 얼 (2) 기본 명령
기본 설 치 를 사용 하기 때문에 설 치 된 Nginx 의 바 이 너 리 파일 주 소 는
usr/local/nginx/sbin/nginx
이 고 해당 하 는 프로필 주 소 는 /usr/local/nginx/conf/nginx.conf
입 니 다.1. 도움말 보이 기
직접 집행
/usr/local/nginx/sbin/nginx -h
또는 /usr/local/nginx/sbin/nginx -?
모두 가능 합 니 다.2. Nginx 버 전 정보 표시
- v 인 자 를 사용 할 수 있 습 니 다. 여 기 는 소문 자 영문 v 입 니 다.
/usr/local/nginx/sbin/nginx -v
nginx version: nginx/1.17.1
3. Nginx 컴 파일 단계 파라미터 표시
이 명령 에 사용 할 인 자 는 - V 입 니 다. 대문자 v 입 니 다.
/usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.17.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)
configure arguments:
4. Nginx 설정 정보 테스트
Nginx 서 비 스 를 시작 하기 전에 설정 파일 이 올 바른 지 확인 해 야 합 니 다. 이 럴 때 - t 명령 을 사용 할 수 있 습 니 다.
/usr/local/nginx/sbin/nginx -t
- t 즉 test 의 줄 임 말 입 니 다. 모든 것 이 정상 이 라면 아래 와 같은 출력 을 볼 수 있 을 것 입 니 다. 그렇지 않 으 면 어디 에 설정 되 어 있 는 지 돌아 보 셔 야 합 니 다.
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
3. Nginx 시작
설정 파일 테스트 를 통과 하면 다음 단계 에서 Nginx 서 비 스 를 시작 할 수 있 습 니 다. 가장 쉬 운 방법 은 Nginx 의 바 이 너 리 파일 을 직접 실행 하 는 것 입 니 다.
/usr/local/nginx/sbin/nginx
이 명령 은 실행 할 때 기본 설정 파일 을 읽 습 니 다. 여기 서
/usr/local/nginx/conf/nginx.conf
파일 입 니 다.물론 다른 설정 을 사용 할 수도 있 습 니 다./usr/local/nginx/sbin/nginx -c any_nginx.conf
이 때 - c 인자 뒤에 있 는 프로필 을 읽 어서 Nginx 를 시작 합 니 다.
설정 파일 을 지정 할 수도 있 고 - p 매개 변 수 를 통 해 설치 디 렉 터 리 를 지정 할 수도 있 습 니 다.
/usr/local/nginx/sbin/nginx -p /usr/local/nginx
또한, 전역 설정 항목 을 지정 하고 싶다 면, 예 를 들 어 pid 파일 을 some 에 쓰 고 싶 습 니 다.path / nginx. pid 중:
/usr/local/nginx/sbin/nginx -g "pid some_path/nginx.pid"
일부 오래된 Nginx 버 전에 서 - g 인 자 를 사용 할 때 제약 조건 이 있 을 수 있 습 니 다.
최신 버 전에 서 이러한 제약 은 이미 없어졌다.
4. Nginx 서비스 중지
다음 명령 을 실행 하면 Nginx 서 비 스 를 강제로 정지 할 수 있 습 니 다.
/usr/local/nginx/sbin/nginx -s stop
그 중에서 - s 인 자 는 실행 중인 Nginx 서비스 에 신 호 량 을 보 내 는 것 입 니 다. Nginx 프로그램 은 먼저 nginx. pid 파일 을 통 해 Nginx 메 인 프로 세 스 의 프로 세 스 ID 를 얻 은 다음 이 프로 세 스에 TERM 신 호 를 보 내 서 서 서 비 스 를 빠르게 닫 습 니 다.
그래서 위의 원 리 를 알 게 되면 우 리 는 직접 kill 명령 을 통 해 Nginx 서 비 스 를 닫 을 수 있 습 니 다.우선, ps 명령 을 통 해 Nginx 의 주 프로 세 스 ID 를 가 져 옵 니 다.
# ps -ef | grep nginx
root 16450 1 0 23:34 ? 00:00:00 nginx: master process ./sbin/nginx
nobody 16462 16450 0 23:37 ? 00:00:00 nginx: worker process
root 16474 16432 0 23:38 pts/0 00:00:00 grep --color=auto nginx
그리고 kill 명령 을 통 해 신 호 를 보 냅 니 다.
# kill -s SIGTERM 16450
양자 효과 가 일치 하 다.
그러나 위의 이러한 방식 은 Nginx 프로 세 스 를 즉시 종료 시 킬 수 있 습 니 다. 현재 Nginx 가 처리 되 지 않 은 요청 이 있 으 면 클 라 이언 트 에 링크 오류 가 발생 할 수 있 습 니 다.이런 문 제 를 피하 기 위해 서 우 리 는 우아 하 게 물 러 나 는 경향 이 있다.우아 함 이란 Nginx 가 먼저 감청 포트 를 닫 고 새로운 링크 를 받 지 않 은 다음 현재 있 는 링크 를 모두 처리 한 다음 프로 세 스 를 종료 하 는 것 입 니 다.이런 방식 역시
/usr/local/nginx/sbin/nginx
또는 kill
명령 을 통 해 이 루어 질 수 있다.다음 과 같다./usr/local/nginx/sbin/nginx -s quit
or
kill -s SIGQUIT {nginx.pid}
6, 끊임없이 서버 업데이트 설정
Nginx 설정 을 수정 하면 서 비 스 를 다시 시작 하지 않 아 도 온라인 설정 을 업데이트 하 는 목적 을 달성 할 수 있 습 니 다. 이 기능 은 - s reload 명령 을 통 해 이 루어 집 니 다.
/usr/local/nginx/sbin/nginx -s reload
유사 한 것 은 신 호 를 보 내 는 것 이기 때문에 우 리 는 kill 명령 을 사용 하여 실현 할 수 있 습 니 다.
kill -s SIGHUP {nginx.pid}
우 리 는 그 중의 원 리 를 전문 적 으로 말 할 것 입 니 다. 현재 우 리 는 - s reload 명령 을 알 면 실시 간 으로 설정 을 업데이트 할 수 있 습 니 다.
7. 로그 파일 의 스크롤 백
기본적으로 Nginx 의 로그 내용 은 로그 파일 에 끊임없이 append 됩 니 다. 시간 이 지나 면 이 파일 은 매우 커 집 니 다.이 문 제 를 해결 하기 위해 Nginx 는 로그 파일 을 다시 열기 위해 - s reopen 명령 을 제공 합 니 다.
/usr/local/nginx/sbin/nginx -s reopen
or
kill -s SIGUSR1 {nginx.pid}
이러한 기능 을 바탕 으로 우 리 는 Nginx 로그 에 대한 절단 을 쉽게 할 수 있다.우선 현재 로그 파일 의 이름 을 바 꾸 거나 다른 디 렉 터 리 에 백업 한 다음 reopen 명령 을 실행 하여 로그 파일 을 다시 열 면 됩 니 다.상기 절 차 는 정시 스 크 립 트 를 이용 하여 우리 가 완성 하 는 것 을 도 울 수 있 습 니 다. 예:
#!/bin/bash
LOGS_PATH=/usr/local/nginx/logs
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log
mv ${LOGS_PATH}/error.log ${LOGS_PATH}/error_${YESTERDAY}.log
kill -s SIGUSR1 $(cat /usr/local/nginx/logs/nginx.pid)
8, 평활 업그레이드 Nginx
Nginx 는 서비스 가 중단 되 지 않 은 상태 에서 Nginx 버 전 을 업데이트 하 는 것 을 지원 합 니 다. 구체 적 인 작업 은 세 단계 로 나 눌 수 있 습 니 다.
우선, 실행 중인 Nginx 서비스 에 USR 2 신호 (kill - s SIGUSR 2 {nginx. pid}) 를 보 내 Nginx 에 업 그 레이 드 를 준비 하 라 고 알려 줍 니 다.이 때 Nginx 는 pid 파일 의 이름 을 바 꿉 니 다. 예 를 들 어 오래된 nginx. pid 는 nginx. pid. oldbin 으로 바 꿉 니 다.
이후 새로운 버 전의 Nginx 를 시작 합 니 다. 이때 신 구 두 버 전의 Nginx 가 모두 실행 되 고 있 습 니 다.
마지막 으로 기 존 버 전의 Ningx 서비스 에 SIGQUIT 신 호 를 보 내 우아 하 게 퇴출 시킨다.
요약:
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.