nginx 입문 안내 (1)

8130 단어 nginx중국어 문서
흥미 로 운 번역, 아마추어 수준, nginx 공식 영어 소개 문서 가 좋 습 니 다. 안 타 깝 게 도 중국어 인터넷 에는 해당 하 는 번역 이 없 는 것 같 습 니 다.
입문 안내
시작, 정지, 재 부팅 설정 프로필 구성 서비스 정적 내용 간단 한 프 록 시 서버 만 들 기 FastCGI 에이전트 만 들 기
이 안 내 는 nginx 에 대해 간단 한 소 개 를 하고 그것 이 완성 할 수 있 는 간단 한 임 무 를 묘사 했다.우 리 는 독자 가 nginx 를 설치 했다 고 가정 합 니 다. 없 으 면 설치 nginx 페이지 를 보 세 요.이 안 내 는 nginx 를 시작 하고 정지 하 는 방법, 설정 파일 을 다시 불 러 오 는 방법, nginx 서 비 스 를 정적 으로 만 드 는 방법, nginx 를 프 록 시 서버 로 만 드 는 방법, FastCGI 와 연결 하 는 방법 을 설명 합 니 다.
nginx 는 주 프로 세 스 와 몇 개의 작업 프로 세 스 가 있 습 니 다.주 프로 세 스 의 주요 목적 은 설정 파일 을 읽 고 분석 하 며 작업 프로 세 스 를 관리 하 는 것 입 니 다.작업 프로 세 스 가 실제 요청 을 처리 합 니 다.nginx 는 이벤트 기반 모델 과 운영 체제 의존 형 메커니즘 을 사용 하여 작업 프로 세 스에 효과적으로 요청 을 나 누 어 줍 니 다.작업 프로 세 스 의 수량 은 설정 파일 에 의 해 정의 되 며, 주어진 설정 파일 을 수정 하여 변경 하거나 cpu 의 핵 수 에 따라 자동 으로 조정 할 수 있 습 니 다 (상세 한 내용 은 작업 프로 세 스.
nginx 와 모듈 들 의 작업 방식 은 설정 파일 에 의 해 결 정 됩 니 다. 기본 적 인 상황 에서 설정 파일 이름 은 nginx. conf 입 니 다. / usr / local / nginx / conf, / etc / nginx 또는 usr / local / etc / nginx 디 렉 터 리 에 놓 여 있 습 니 다.
시작, 정지, 재 부팅 설정
실행 가능 한 파일 을 실행 하여 nginx 를 시작 합 니 다.nginx 가 시작 되면 밴드 - s 매개 변 수 를 호출 하여 실행 가능 한 명령 을 제어 할 수 있 습 니 다.다음 문법 을 사용 합 니 다:
nginx -s signal
그 중에서 signal 은 다음 과 같은 몇 가지 중 하나 일 수 있 습 니 다.
  • stop - 빠 른 닫 기
  • quit - 안정 적 인 폐쇄
  • reload - 프로필 다시 불 러 오기
  • reopen - 로그 파일 다시 열기
  • 예 를 들 어 작업 프로 세 스 가 현재 요청 을 처리 할 때 까지 기 다 려 야 nginx 를 닫 습 니 다. 다음 명령 을 사용 할 수 있 습 니 다.
    nginx -s quit nginx
    설정 파일 의 변경 사항 은 즉시 reload 명령 이 실행 되 거나 nginx 가 다시 시작 되 지 않 습 니 다.reload 명령 실행:
    nginx -s reload
    주 프로 세 스 가 설정 파일 을 다시 불 러 오 는 신 호 를 받 으 면 새 설정 파일 의 문법 을 확인 하고 설정 을 적용 하려 고 합 니 다.응용 에 성공 하면 새 작업 프로 세 스 를 시작 하고 닫 힌 요청 을 오래된 작업 프로 세 스에 보 냅 니 다.그렇지 않 으 면 메 인 프로 세 스 가 스크롤 백 수정 을 하고 오래된 설정 작업 을 계속 사용 합 니 다.오래된 작업 프로 세 스 가 닫 힌 명령 을 받 은 후 새로운 연결 을 받 지 않 고 현재 요청 이 서 비 스 될 때 까지 서 비 스 를 계속 합 니 다.그리고 오래된 작업 프로 세 스 가 종 료 됩 니 다.
    하나의 신호 도 유 닉 스 도 구 를 통 해 nginx 프로 세 스 에 보 낼 수 있 습 니 다. 예 를 들 어 kill.이러한 상황 에서 하나의 신 호 는 프로 세 스 id 를 통 해 프로 세 스 에 직접 전 송 됩 니 다.기본적으로 nginx 의 메 인 프로 세 스 id 는 / usr / local / nginx / logs 또는 / var / run 디 렉 터 리 의 nginx. pid 파일 에 기 록 됩 니 다.예 를 들 어 메 인 프로 세 스 id 가 1628 이면 quit 신 호 를 보 내 nginx 를 안정 적 으로 닫 기 위해 실행 할 수 있 습 니 다: kill - s QUIT 1628
    모든 실행 중인 nginx 프로 세 스 의 목록 을 얻 기 위해 ps 명령 을 사용 할 수 있 습 니 다. 예 를 들 어 ps - ax | grep nginx 는 신 호 를 보 내 는 정보 가 더 많 습 니 다. 참가 제어 nginx
    프로필 구성
    nginx 는 설정 파일 의 명령 제어 모듈 을 포함 합 니 다.명령 은 간단 한 명령 과 블록 급 명령 두 가지 로 나 뉜 다.간단 한 명령 은 빈 칸 으로 분 리 된 이름과 파 라 메 터 를 포함 하고 분점 으로 끝 납 니 다.블록 급 명령 은 간단 한 명령 과 같은 구 조 를 가지 고 있 지만, 분점 끝 을 사용 하지 않 고 {(와)} 에 둘러싸 인 추가 구 조 를 사용 하여 끝 냅 니 다.블록 급 명령 에 다른 명령 이 포함 되 어 있다 면, 그것 은 문맥 이 라 고 불 린 다.이벤트, http, server, location
    \ # 번호 뒤의 내용 은 주석 입 니 다.
    서비스 정적 내용
    웹 서버 의 중요 한 임 무 는 그림 과 정적 웹 페이지 등 대외 출력 파일 입 니 다.요청 에 따라 파일 은 다른 로 컬 디 렉 터 리 에서 출력 됩 니 다. 예 를 들 어 / data / ww (html) 와 / data / images 가 출력 됩 니 다.설정 파일 을 수정 하고 http 블록 명령 에 두 개의 location 블록 을 가 진 server 블록 을 만들어 야 합 니 다.
    우선, / data / ww 디 렉 터 리 를 만 들 고 index. html 파일 을 설치 한 다음 / data / images 디 렉 터 리 를 만 들 고 그림 을 설치 합 니 다.
    다음은 프로필 을 엽 니 다.기본 설정 파일 에는 서버 블록 명령 의 예 가 몇 개 포함 되 어 있 으 며, 대부분 설명 되 어 있 습 니 다.현재, 이러한 블록 명령 을 주석 하고 새로운 server 블록 명령 을 만 듭 니 다.
    http {  
        server {  
        }  
    }
    

    보통 하나의 프로필 에는 서버 블록 이 몇 개 포함 되 어 있 으 며, 그들 이 감청 하 는 포트 와 그들의 서비스 이름 을 통 해 구분 된다.nginx 가 요청 을 어느 server 에서 처리 할 지 결정 하면 요청 머리 에 있 는 URI 를 검사 하고 location 명령 의 매개 변수 와 비교 합 니 다. location 블록 은 server 블록 에 정의 되 었 습 니 다.
    location / {
        root /data/www;
    }  
    

    이 location 블록 은 요청 한 URI 와 비교 하기 위해 "/" 접 두 사 를 설명 합 니 다.성공 적 으로 일치 하 는 요청 에 대해 URI 는 루트 명령 성명 의 경로 뒤에 추가 되 어 로 컬 파일 시스템 에서 필요 한 파일 에 대한 요청 을 만 듭 니 다.일치 하 는 location 블록 이 여러 개 있 으 면 nginx 에서 가장 긴 접 두 사 를 선택 하 십시오.이상 의 location 블록 접 두 사 는 한 글자 만 있 고 가장 짧 기 때문에 다른 location 이 일치 하지 않 을 때 만 이 location 이 선택 할 수 있 습 니 다.
    현재 두 번 째 위치 블록 추가:
    location /images/ {
        root /data;
    }
    

    이것 은 / images / 로 시작 하 는 요청 (location / 도 이 요청 과 일치 하지만 접두사 가 더 짧 습 니 다) 과 일치 합 니 다. 현재 server 블록 명령 은 이렇게 보 입 니 다.
    server {
        location / {
            root /data/www;
        }
    
        location /images/ {
            root /data;
        }
    }
    

    이 설정 은 표준 80 포트 에 감청 되 어 있 으 며, 이 컴퓨터 에서 http://localhost/ 접근 할 수 있 습 니 다.서버 는 / images / 로 시작 하 는 URI 에 응답 하기 위해 / data / images 디 렉 터 리 에서 파일 을 보 냅 니 다.예 를 들 어 nginx 는 응답 http://localhost/images/example.png 을 위해 / data / images / example. png 파일 을 보 냅 니 다. 이러한 파일 이 존재 하지 않 으 면 nginx 는 404 오 류 를 보 냅 니 다./ images / 로 시작 하지 않 는 요청 은 / data / ww 디 렉 터 리 에 매 핑 됩 니 다. 예 를 들 어 http://localhost/some/example.html / data / ww / some / example. html 파일 에 매 핑 됩 니 다.
    간단 한 프 록 시 서버 만 들 기
    nginx 의 가장 흔 한 용 도 는 프 록 시 서버 로 사용 하 는 것 입 니 다. 즉, 받 은 요청 을 프 록 시 서버 에 전달 하고 프 록 시 서버 에서 응답 을 되 찾 아 클 라 이언 트 에 게 보 내 는 것 입 니 다.
    그림 파일 에 대한 요청 은 로 컬 디 렉 터 리 에서 파일 을 보 내 고 다른 요청 은 다른 프 록 시 서버 에 전송 할 기본 프 록 시 서버 를 설정 합 니 다.이 예 에서 두 서버 는 하나의 nginx 인 스 턴 스 에서 정 의 됩 니 다.
    우선, 블록 명령 을 추가 하여 프 록 시 서버 를 정의 합 니 다.
    server {
        listen 8080;
        root /data/up1;
    
        location / {
        }
    }
    

    이것 은 8080 포트 에 감청 되 는 간단 한 서버 입 니 다.이 폴 더 를 만 들 고 index. html 파일 을 넣 습 니 다.이 루트 명령 은 server 컨 텍스트 에 놓 여 있 습 니 다.location 이 선택 되 었 지만 내부 에 root 명령 이 없 을 때 server 의 이 root 명령 을 사용 합 니 다.
    다음은 이전 절 에 있 는 server 설정 을 프 록 시 서버 설정 으로 변경 합 니 다.첫 번 째 location 블록 에 proxy 추가pass 명령, 프 록 시 서버 의 프로 토 콜, 이름과 포트 입 니 다.(이 예 에서 매개 변 수 는 http://localhost:8080:
    server {
        location / {
            proxy_pass http://localhost:8080;
        }
    
        location /images/ {
            root /data;
        }
    }
    

    두 번 째 location 블록 을 수정 하여 기 존의 일치 / images / 접두사 에서 전형 적 인 그림 파일 확장자 로 변경 합 니 다.수 정 된 location 은 다음 과 같 습 니 다.
    location ~ \.(gif|jpg|png)$ {
        root /data/images;
    }
    

    이 매개 변 수 는. gif,. jpg 또는. png 로 끝 나 는 모든 URI 와 일치 하 는 정규 표현 식 입 니 다. ~정규 표현 식 앞 에 써 야 합 니 다.
    nginx 가 location 을 선택 할 때 접 두 사 를 검사 하고 일치 하 는 location (최 장 접두사) 을 기록 한 다음 nginx 에서 정규 표현 식 을 검사 합 니 다. 정규 표현 식 이 일치 하면 이 location 을 선택 합 니 다. 그렇지 않 으 면 기 록 된 location 을 선택 하 십시오.
    최종 프 록 시 설정:
    server {
        location / {
            proxy_pass http://localhost:8080/;
        }
    
        location ~ \.(gif|jpg|png)$ {
            root /data/images;
        }
    }
    

    현재 이 서버 는. gif,. jpg 또는. png 로 끝 나 는 요청 을 이 컴퓨터 디 렉 터 리 에 반영 하여 다른 모든 요청 을 프 록 시 서버 에 보 낼 수 있 습 니 다.
    설정 을 적용 하기 위해 서 는 reload 신 호 를 보 내야 합 니 다.
    FastCGI 에이전트 만 들 기
    nginx 는 요청 경 로 를 FastCGI 서버 에 전달 하 는 데 사용 할 수 있 습 니 다.FastCGI 서버 는 다양한 프레임 워 크 와 프로그램 언어 (예: PHP) 로 구 축 된 애플 리 케 이 션 을 실행 할 수 있 습 니 다.
    가장 기본 적 인 설정 방법 은 fastcgi 를 사용 하 는 것 입 니 다.pass 명령 대체 proxypass 명령 및 fastcgiparam 명령 설정 매개 변수.FastCGI 서버 에 접근 할 수 있 는 경로 가 localhost: 9000 이 라 고 가정 하고 이전 프 록 시 설정 을 기반 으로 수정 합 니 다.PHP 에서 SCRIPTFILENAME 인 자 는 스 크 립 트 이름 을 지정 하 는 데 사 용 됩 니 다. QUERYSTRING 은 요청 인 자 를 전달 하 는 데 사 용 됩 니 다.변경 결 과 는 다음 과 같 습 니 다.
    server {
        location / {
            fastcgi_pass  localhost:9000;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param QUERY_STRING    $query_string;
        }
    
        location ~ \.(gif|jpg|png)$ {
            root /data/images;
        }
    }
    

    여기에 FastCGI 프 록 시 서버 를 만 들 었 습 니 다. 정적 그림 이외 의 요청 을 FastCGI 프로 토 콜 을 통 해 프 록 시 localhost: 9000 에 전달 할 수 있 습 니 다.

    좋은 웹페이지 즐겨찾기