Nginx 튜 토리 얼 (2) 기본 명령

5826 단어
Nginx 는 Nginx 의 시작, 정지, 업데이트 등 을 관리 할 수 있 도록 명령 행 도 구 를 제공 합 니 다. 이 도 구 는 Nginx 의 설치 에 따라 설치 디 렉 터 리 에 있 는 sbin 디 렉 터 리 아래 에 놓 입 니 다.이 절 에서 우 리 는 명령 행 을 통 해 Nginx 를 어떻게 조작 하 는 지 이야기 합 시다.
기본 설 치 를 사용 하기 때문에 설 치 된 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 인 자 를 사용 할 때 제약 조건 이 있 을 수 있 습 니 다.
  • - g 지정 한 설정 항목 은 기본 경로 의 nginx. conf 의 설정 항목 과 충돌 할 수 없습니다. 그렇지 않 으 면 시작 에 실패 합 니 다.
  • - g 방식 으로 시 작 된 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 신 호 를 보 내 우아 하 게 퇴출 시킨다.
    요약:
  • 업데이트 설정: nginx - s reload
  • 도움: -? -h
  • 지정 한 프로필 사용: - c
  • 지정 한 설정 명령: - g
  • 실행 디 렉 터 리: - p
  • 신호 보 내기: - s
  • 즉시 서비스 정지: stop
  • 우아 한 서비스 정지: quit
  • 프로필 다시 불 러 오기: reload
  • 설정 파일 을 다시 시작 합 니 다: reopen
  • 설정 파일 에 문법 오류 가 있 는 지 테스트 합 니 다: - t - T
  • nginx 의 버 전 정보 인쇄, 컴 파일 정보 등: - v - V
  • 좋은 웹페이지 즐겨찾기