nginx 기본 입문 (지금까지 가장 좋 은 nginx 입문 문장 을 본 적 이 있 습 니 다. 하나 도 없습니다.)

10893 단어 web
본문
이 강 좌 는 nginx 를 간단하게 소개 하고 nginx 가 해결 할 수 있 는 간단 한 임 무 를 설명 했다.여기 서 우 리 는 nginx 가 독자 의 기계 에 설치 되 었 다 고 가정 합 니 다.없 으 면 nginx 를 어떻게 설치 하 는 지 볼 수 있 습 니 다.이 튜 토리 얼 은 ngixn 을 사용 하고 정지 하 며 설정 을 다시 불 러 오 면 프로필 의 기본 구조 와 nginx 정적 보조 기 를 어떻게 구축 하 는 지, nginx 를 프 록 시 서버 로 어떻게 설정 하 는 지 설명 합 니 다.nginx 는 주 프로 세 스 와 다른 하위 프로 세 스 가 있 습 니 다.주 프로 세 스 의 주요 작업 은 설정 파일 을 불 러 오고 실행 하 며 하위 프로 세 스 를 유지 하 는 것 입 니 다.하위 프로 세 스 는 실제 요청 으로 처리 합 니 다.nginx 는 이벤트 기반 모델 과 OS 의존 체 제 를 사용 하여 여러 개의 키 프로 세 스 간 에 효율 적 인 배분 요 구 를 합 니 다.하위 프로 세 스 의 개 수 는 설정 파일 에 직접 적 혀 있 으 며, 주어진 설정 은 고정 되 거나 사용 가능 한 CPU 핵 수 에 따라 자동 으로 조정 할 수 있 습 니 다 (하위 프로 세 스 참조).nginx 와 모듈 의 작업 방식 은 설정 파일 에 적 혀 있 습 니 다.기본적으로 이 프로필 은 nginx. conf 라 고 명명 되 어 있 으 며 / usr / local / nginx / conf, / etc / nginx 또는 / usr / local / etc / nginx 에 놓 여 있 습 니 다.
설정 사용, 정지, 다시 불 러 오기
실행 가능 한 파일 을 실행 하면 nginx 를 열 수 있 습 니 다. 예 를 들 어:
// -c   nginx      

nginx-c/usr/local/nginx/conf/nginx.conf

nginx 가 열 렸 다 면 - s 매개 변 수 를 사용 하여 명령 을 실행 할 수 있 습 니 다.다음 형식 사용 하기:
nginx-ssignal

signal 은 다음 명령 중 하나 일 수 있 습 니 다:
stop - nginx 직접 닫 기
quit - 현재 요청 을 처리 한 후 종료 합 니 다. 우아 한 종료 라 고도 합 니 다.
reload - 프로필 을 다시 불 러 오 는 것 은 다시 시작 하 는 것 과 같 습 니 다.
reopen - 로그 파일 을 다시 엽 니 다. 예 를 들 어 현재 하위 프로 세 스 가 실행 중인 요청 을 처리 한 후에 nginx 프로 세 스 를 끝내 면 다음 명령 을 사용 할 수 있 습 니 다.
nginx -s quit

이 명령 을 실행 하 는 사용 자 는 시작 하 는 nginx 사용자 와 일치 해 야 합 니 다.설정 파일 을 다시 불 러 오 는 명령 이 nginx 나 nginx 에 전달 되 지 않 았 다 면 설정 파일 의 변경 사항 은 사용 되 지 않 습 니 다.프로필 을 다시 불 러 오 는 명령 을 사용 할 수 있 습 니 다:
nginx -s reload

주 프로 세 스 가 프로필 을 다시 불 러 오 라 는 명령 을 받 으 면 프로필 문법 의 합 법성 을 먼저 검사 하고 오류 가 없 으 면 프로필 을 다시 불 러 옵 니 다.성공 하면 주 프로 세 스 는 하위 프로 세 스 를 다시 만 들 고 닫 기 요청 을 이전 하위 프로 세 스에 보 냅 니 다.성공 하지 않 으 면 메 인 프로 세 스 는 스크롤 백 을 변경 하고 이전 설정 을 계속 사용 합 니 다.오래된 하위 프로 세 스 는 닫 힌 명령 을 받 은 후에 새로운 요청 을 받 아들 이지 않 고 현재 요청 을 처리 할 때 까지 계속 처리 합 니 다.이후 이 하위 프로 세 스 는 바로 종료 되 었 다.유 닉 스 도구 의 도움 으로 예 를 들 어 kill 도 구 를 사용 하면 이 신 호 는 nginx 프로 세 스에 전 송 됩 니 다.이 경우 프로 세 스 ID 가 있 는 프로 세 스에 신 호 를 직접 보 냅 니 다.nginx 의 주 프로 세 스 ID 는 nginx. pid 파일 에 쓰 여 있 습 니 다.이 파일 은 보통 / usr / local / nginx / logs 또는 / var / run 디 렉 터 리 에 놓 여 있 습 니 다.예 를 들 어 메 인 프로 세 스 의 ID 가 1628 이면 QUIT 신 호 를 보 내 nginx 를 우아 하 게 종료 시 키 기 위해 실행 할 수 있 습 니 다: kill - s QUIT 1628
실행 중인 nginx 프로 세 스 를 얻 기 위해 서 는 다음 과 같은 ps 도 구 를 사용 할 수 있 습 니 다.
$ ps -ax | grep nginx

//    :(      CPU    ) 

516 pts/0    D+    0:00 grep --color=auto nginx 

1156 ?        S      1:22 nginx: worker process

27999 ?        Ss    0:00 nginx: master process ./nginx

nginx 에 신 호 를 보 내 는 것 에 대해 서 는 nginx 제 어 를 참고 할 수 있 습 니 다.
구성 파일 구조
nginx 는 일부 모듈 로 구성 되 어 있 으 며, 우 리 는 일반적으로 설정 파일 에서 구체 적 인 명령 을 사용 하여 그것들 을 제어 합 니 다.명령 은 간단 한 명령 과 블록 급 명령 으로 나 뉜 다.간단 한 명령 은 이름과 매개 변수 로 구성 되 어 있 으 며, 중간 에 빈 칸 으로 나 누 어 분점 으로 끝난다.예 를 들 면:
//     

root /data/www;

블록 급 명령 은 간단 한 명령 과 마찬가지 로 유사 한 구 조 를 가지 고 있 지만 끝 은 분점 이 아니 라 {와} 대괄호 로 감 싼 추가 명령 집합 입 니 다.블록 급 명령 의 큰 괄호 안에 다른 명령 이 있 으 면 컨 텍스트 (예 를 들 어 events, Module ngx http core module, server, location) 라 고 합 니 다.설정 파일 에 서 는 컨 텍스트 에 두 지 않 은 명령 이 주 컨 텍스트 에 있 습 니 다.이벤트 와 http 의 명령 은 주 상하 문 에 놓 고 server 는 http 에 놓 고 location 는 server 에 놓 습 니 다.
\ # 로 시작 하 는 줄 은 주석 으로 여 겨 집 니 다.
# this is a comment

events {  

    worker_connections  4096;  ## Default: 1024

}

http {    

        server {          

                listen      80;        

                server_name  domain1.com www.domain1.com;        

                access_log  logs/domain1.access.log  main;        

                root        html;        

                location ~ \.php$ {          

                    fastcgi_pass  127.0.0.1:1025;        

                }    

        }

}

정적 서버
중요 한 네트워크 서버 의 임 무 는 파일 처리 (예 를 들 어 그림 이나 정적 HTML 파일) 입 니 다.예 를 들 어 파일 은 다른 디 렉 터 리 에서 매 핑 됩 니 다 (요청 에 따라 달라 집 니 다): / data / ww (HTML 파일 설치) 와 / data / images (그림 설치).이것 은 파일 을 설정 해 야 합 니 다. 두 개의 location 명령 을 가 진 server 의 블록 급 명령 을 server 명령 에 두 어야 합 니 다.우선, / data / ww 디 렉 터 리 를 만 든 다음, 미리 작성 한 index. html 파일 을 설치 합 니 다.이 어 / data / images 디 렉 터 리 를 만 들 고 그림 을 놓 습 니 다.다음 단계 에서 프로필 을 엽 니 다.기본 설정 파일 은 server 명령 에 대한 스타일 을 포함 하고 있 으 며, 대부분의 경우 직접 설명 합 니 다.현재 다른 블록 을 주석 하고 새 server 블록 을 작성 합 니 다.
http {    

        server {    

        }

}

일반적으로 이 프로필 은 여러 개의 server 명령 을 포함 할 수 있 습 니 다.이 server 명령 들 은 서로 다른 포트 와 서버 이름 을 감청 합 니 다.nginx 가 어떤 서비스 프로 세 스 가 요청 을 처리 할 지 결정 하면 server 블록 급 명령 에 정 의 된 location 명령 의 매개 변수 에 따라 요청 헤더 에 지정 한 URI 와 일치 합 니 다.다음 location 명령 을 server 명령 에 추가 합 니 다:
location / {    

        root /data/www;

}

이 location 명령 은 요청 한 URI 에 비해 "/" 접 두 사 를 실 행 했 습 니 다.요청 과 일치 하기 위해 서 URI 는 루트 명령 이 지정 한 경로, 즉 / data / ww 에 추 가 됩 니 다. 로 컬 파일 시스템 에서 요청 한 파일 의 경 로 를 가 져 옵 니 다.만약 몇 개의 location 이 일치한다 면, nginx 는 가장 긴 접 두 사 를 선택 할 것 입 니 다.위의 location 은 길이 가 1 인 접 두 사 를 제공 하기 때문에 다른 location 이 일치 하지 않 을 때 만 사용 할 수 있 습 니 다.이 어 두 번 째 location 블록 을 추가 합 니 다.
location /images/ {    

        root /data;

}

이것 은 / images / 로 시작 하 는 요청 (location / 도 이 요청 과 일치 합 니 다. 접두사 만 더 짧 습 니 다) server 블록 급 명령 의 설정 결 과 는 다음 과 같 습 니 다.
server {   

        location / {       

                root /data/www;   

        }   

        location /images/ {       

                root /data;   

        }

}

이것 은 표준 80 포트 를 감청 하고 로 컬 에서 통과 할 수 있 는 사용 가능 한 서버 설정 입 니 다.http://localhost/ 방문URI 가 / images / 로 시작 하 는 요청 에 대해 서버 는 / data / images 디 렉 터 리 에서 해당 하 는 파일 을 되 돌려 줍 니 다.예 를 들 어 nginx 는 / data / images / example. png 파일 을 받 을 때 되 돌려 줍 니 다.http://localhost/images/example.png 라 는 요청 이 들 어 왔 을 때이 파일 이 존재 하지 않 으 면 nginx 는 404 오류 의 응답 을 되 돌려 줍 니 다./ images / 로 시작 하 는 URI 요청 이 없 으 면 / data / ww 디 렉 터 리 에 직접 매 핑 됩 니 다.호응http://localhost/some/example.html nginx 는 / data / www / some / example. html 파일 을 보 냅 니 다.새 프로필 을 사용 하기 위해 서 는 nginx 가 열 리 지 않 았 다 면 먼저 열 고 다시 불 러 오 는 신 호 를 nginx 의 메 인 프로 세 스에 보 내야 합 니 다. 실행 을 통 해:
nginx -s reload

문제 가 있 는 곳 을 발견 하면 / usr / local / nginx / logs 또는 / var / log / nginx 디 렉 터 리 에 있 는 access. log 와 error. log 파일 에서 원인 을 찾 을 수 있 습 니 다.
간단 하고 쉬 운 대리 서 비 스 를 세우다.
nginx 는 프 록 시 서버 로 자주 사 용 됩 니 다. 이것 은 서버 가 요청 을 받 은 후에 피 프 록 시 서버 에 전달 하고 요청 한 응답 을 받 은 다음 에 클 라 이언 트 에 게 보 내 는 것 을 의미 합 니 다.기본 프 록 시 서버 를 설정 합 니 다. 로 컬 그림 파일 의 요청 을 처리 하고 프 록 시 서버 에 다른 요청 을 되 돌려 줍 니 다.이 예 에서 두 서버 는 하나의 nginx 인 스 턴 스 로 정 의 됩 니 다.우선, nginx 프로필 에 다른 server 블록 을 추가 하여 프 록 시 된 서버 를 정의 합 니 다. 아래 설정 과 같 습 니 다.
server {   

        listen 8080;   

        root /data/up1;   

        location / {   

        }

}

위 는 간단 한 서버 입 니 다. 8080 포트 (이전 에는 listen 이 정의 되 지 않 았 습 니 다. 기본 감청 의 80 포트 때 문 입 니 다) 를 감청 하고 모든 요청 을 로 컬 파일 디 렉 터 리 / data / up1 에 반영 합 니 다.이 디 렉 터 리 를 만 들 고 index. html 파일 을 추가 합 니 다.루트 명령 은 server 컨 텍스트 에 놓 여 있 습 니 다.요청 에 응답 하 는 location 블록 에 루트 명령 이 없 으 면 위 루트 명령 이 사 용 됩 니 다.이 어 앞 장 에 있 는 server 설정 을 사용 한 후 프 록 시 서비스 설정 으로 변경 합 니 다.첫 번 째 location 블록 에 프 록 시 에 추 가 된 프로 토 콜, 이름과 포트 등 매개 변 수 를 설치 한 proxypass 명령 (여기 있 습 니 다. 바로...http://localhost:8080):
server {   

        location / {

                proxy_pass http://localhost:8080;   

        }   

        location /images/ {

               root /data;   

        }

}

두 번 째 location 블록 을 수정 하여 전형 적 인 접미사 가 있 는 그림 파일 요청 을 되 돌려 줍 니 다. 이 제 는 / images / 접두사 가 있 는 요청 만 / data / images 디 렉 터 리 에 반영 합 니 다.수 정 된 location 명령 은 다음 과 같 습 니 다.
location ~ \.(gif|jpg|png)${

        root/data/images;

}

이 매개 변 수 는 정규 표현 식 으로. gif,. jpg 또는. png 로 끝 나 는 모든 URI 와 일치 합 니 다.정규 표현 식 은 ~ 로 시작 해 야 합 니 다.일치 하 는 요청 은 / data / images 디 렉 터 리 에 매 핑 됩 니 다.nginx 가 location 를 선택 하여 요청 에 응답 할 때 접두사 가 있 는 location 명령 을 먼저 검 측 합 니 다. 먼저 가장 긴 접 두 사 를 가 진 location 을 검 측 한 다음 정규 표현 식 을 검 측 하 는 것 을 기억 하 십시오.정규 일치 하 는 규칙 이 있 으 면 nginx 는 이 location 을 선택 합 니 다. 그렇지 않 으 면 이전 캐 시 규칙 을 선택 합 니 다.마지막 으로 프 록 시 서버 의 설정 결 과 는 다음 과 같 습 니 다.
server{

        location/{

                proxy_passhttp://localhost:8080/;

        }

        location~\.(gif|jpg|png)${

                root/data/images;

        }

}

이 서버 는. gif,. jpg, 또는. png 로 끝 난 요청 을 선택 하고 / data / images 디 렉 터 리 에 매 핑 합 니 다.새로운 설정 을 사용 하기 위해 서 는 앞의 몇 장 에서 설명 한 것 처럼 nginx 에 재 부팅 신 호 를 보 내야 합 니 다.프 록 시 연결 을 추가 로 설정 할 수 있 는 다른 명령 도 많 습 니 다.

좋은 웹페이지 즐겨찾기