nginx 학습 노트 (1 - 입문)

8008 단어 nginx
nginx: 참고 클릭
nginx 는 주 프로 세 스 와 여러 작업 프로 세 스 가 있 습 니 다.주 프로 세 스 는 설정 을 읽 고 평가 하 며 작업 프로 세 스 를 유지 하 는 데 사 용 됩 니 다.작업 프로 세 스 는 실제 처리 요청 에 사 용 됩 니 다.nginx 는 이벤트 기반 모델 과 운영 체제 에 의존 하 는 메커니즘 을 사용 하여 작업 프로 세 스 간 에 요청 을 효과적으로 나 누 어 줍 니 다.작업 프로 세 스 의 수 는 설정 파일 에서 정 의 됩 니 다. 주어진 설정 을 고정 시 킬 수도 있 고 사용 가능 한 CPU 커 널 수 에 따라 자동 으로 조정 할 수도 있 습 니 다.
nginx 와 그 모듈 의 작업 방식 은 설정 파일 에서 확 정 됩 니 다.기본 적 인 상황 에서 프로필 이름 nginx.conf 을 설정 하고 디 렉 터 리 /usr/ local/nginx/conf, /etc/nginx 또는 /usr/local/etc/nginx 에 배치 합 니 다.
Starting, Stopping, and Reloading Configuration
실행 가능 한 파일 시작 nginx 를 실행 합 니 다.nginx 가 시작 되면 - s 인자 가 있 는 실행 가능 한 파일 을 호출 하여 제어 할 수 있 습 니 다.다음 문법 사용
nginx -s signal

signal 은 다음 매개 변수 중 하나 일 수 있 습 니 다.
  • stop - 빠 른 닫 기
  • quit - 부 드 러 운 닫 기
  • reload - 프로필 다시 불 러 오기
  • reopen - 로그 파일 다시 열기
  • 예 를 들 어 작업 프로 세 스 가 현재 요청 을 완료 한 후에 nginx 프로 세 스 를 중단 하려 면 다음 명령 을 수행 할 수 있 습 니 다.
    nginx -s quit
    

    This command should be executed under the same user that started nginx.
    설정 을 다시 불 러 오 는 명령 을 nginx 로 보 내 거나 다시 시작 하기 전에 설정 파일 의 변경 사항 을 적용 하지 않 습 니 다.설정 을 다시 불 러 오 려 면 실행 하 십시오.
    nginx -s reload
    

    Configuration File’s Structure
    nginx 는 모듈 로 구성 되 어 있 으 며 모듈 은 설정 파일 에서 지정 한 명령 으로 제 어 됩 니 다.명령 은 간단 한 명령 과 블록 명령 으로 나 뉜 다.간단 한 명령 은 이름과 매개 변수 로 구성 되 어 있 으 며, 빈 칸 으로 구분 되 어 있 으 며, 분점 (;) 으로 끝 납 니 다.블록 명령 의 구 조 는 간단 한 명령 과 같 지만 끝 은 분점 이 아니 라 괄호 ({와}) 로 둘러싸 인 추가 명령 입 니 다.하나의 block 명령 이 괄호 안에 다른 명령 을 포함 할 수 있다 면 컨 텍스트 (예 를 들 어 이벤트, http, server, location) 라 고 합 니 다.(이벤트, http, 서버 와 위치)
    모든 컨 텍스트 이외 의 설정 파일 에 있 는 명령 은 주 컨 텍스트 에 있 는 것 으로 여 겨 집 니 다.이벤트 와 http 명령 은 주 컨 텍스트 에 머 물 러 있 고 server 는 http 에 있 으 며 location 은 server 에 머 물 러 있 습 니 다.
    \ # 기호 뒤의 줄 은 주석 으로 여 겨 집 니 다.
    정적 콘 텐 츠 서비스 (정적 콘 텐 츠 처리)
    웹 서버 의 중요 한 임 무 는 파일 (예 를 들 어 images 나 정적 HTML 파일) 을 제공 하 는 것 입 니 다.다음 인 스 턴 스 는 요청 에 따라 로 컬 디 렉 터 리 에서 파일 을 제공 합 니 다. /data/www (HTML 파일 포함 가능) 과 /data/images (그림 포함).This will require editing of the configuration file and setting up of a server block inside the http block with two location blocks.
    우선 디 렉 터 리 를 만 들 고 임의의 텍스트 내용 을 포함 하 는 /data/www 파일 을 넣 고 index.html 디 렉 터 리 를 만 들 고 그림 을 넣 습 니 다.
    다음은 프로필 을 엽 니 다.기본 설정 파일 은 서버 블록의 예 를 몇 개 포함 하고 있 으 며 대부분 주석 이 달 려 있 습 니 다.이 블록 들 을 모두 설명 하고 새 server 블록 을 시작 합 니 다.
    http {
    	server {
    	}
    }
    

    일반적으로 설정 파일 은 몇 개의 server 블록 을 포함 할 수 있 습 니 다. 이 server 블록 들 은 감청 포트 와 server name 을 통 해 구분 할 수 있 습 니 다.nginx 가 요청 을 처리 할 서버 (server) 를 결정 하면 서버 블록 에 정 의 된 location 명령 의 매개 변수 테스트 요청 헤더 에 지정 한 URI 입 니 다.
    server 블록 에 location 블록 추가:
    location / {
    	root	/data/www;
    }
    

    이 위치 (location) 블록 은 "/" 접 두 사 를 요청 한 URI 와 비교 합 니 다.일치 하 는 요청 ("/" 를 접두사 로 함) 에 대해 서 는 URI 를 루트 명령 에서 지정 한 경로, 즉 /data/images 에 추가 하여 로 컬 파일 시스템 에서 요청 한 파일 의 경 로 를 만 듭 니 다.일치 하 는 위치 블록 이 여러 개 있 으 면 nginx 는 접두사 가 가장 긴 위치 블록 을 선택 합 니 다.위의 위치 블록 은 가장 짧 은 접 두 사 를 제공 하고 길 이 는 1 이 므 로 모든 다른 위치 블록 이 일치 하 는 항목 을 제공 하지 않 을 때 만 이 블록 을 사용 할 수 있 습 니 다.
    URI 와 URL 의 차이 점
    다음 두 번 째 location 블록 추가:
    location /images/ {
        root /data;
    }
    

    이것 은 /data/www 로 시작 하 는 요청 (location /images/ 과 일치 하지만 접두사 가 짧 아서 효력 을 잃 습 니 다.서버 블록 의 최종 설정 은 다음 과 같 아야 합 니 다.
    server {
    	location / {
    		root /data/www;	
    	}
        
    	location /images/ {
    		root /data;	
    	}
    }
    

    이것 은 서버 의 작업 설정 입 니 다. 기본 포트 80 에서 검색 할 수 있 고 로 컬 컴퓨터 / 에서 접근 할 수 있 습 니 다.http://localhost/ 로 시작 하 는 URI 요청 에 응답 하면 서버 는 /images/ 디 렉 터 리 에서 파일 을 보 냅 니 다.요청 /data/images 하면 nginx 서버 는 http://localhost/images/example.png 파일 을 되 돌려 줍 니 다.이러한 파일 이 존재 하지 않 으 면 nginx 는 404 오 류 를 표시 하 는 응답 을 보 냅 니 다.Requests with URIs not starting with /data/images/example.png will be mapped onto the /images/ directory. For example, in response to the /data/www request nginx will send the http://localhost/some/example.html file.
    nginx 를 시작 하거나 /data/www/some/example.html 새 설정 을 적용 합 니 다.
    예상 한 결과 에 따라 작업 하지 않 으 면 nginx -s reload 또는 /usr/local/nginx/logs/var/log/nginx 파일 에서 원인 을 찾 아 볼 수 있 습 니 다.
    Setting Up a Simple Proxy 서버 (간단 한 프 록 시 서버 설정)
    nginx 의 일반적인 용법 은 프 록 시 서버 로 설정 하 는 것 입 니 다. 이것 은 서버 가 요청 을 받 아 프 록 시 서버 에 전달 하고 프 록 시 서버 검색 응답 에서 클 라 이언 트 에 게 보 내 는 것 을 의미 합 니 다.
    로 컬 디 렉 터 리 에 있 는 파일 을 사용 하여 이미지 요청 을 서비스 하고 모든 다른 요청 을 프 록 시 서버 에 보 낼 기본 프 록 시 서버 를 설정 합 니 다.이 예 에서 이 두 서버 는 nginx 인 스 턴 스 로 정 의 됩 니 다.
    우선, nginx 설정 파일 에 다음 과 같은 내용 을 포함 하 는 서버 블록 을 추가 하여 프 록 시 서버 를 정의 합 니 다.
    server{
        listen 8080;
        root /data/upl;
        
        location / {
            
        }
    }
    

    포트 8080 에서 감청 하 는 간단 한 서버 입 니 다. (그 전에 표준 포트 80 을 사 용 했 기 때문에 listen 명령 을 지정 하지 않 았 습 니 다) 모든 요청 을 로 컬 파일 시스템 access.log 폴 더 에 표시 합 니 다.이 폴 더 를 만 들 고 폴 더 에 만 듭 니 다 error.log.data/upl 명령 이 index.html 문맥 에 놓 여 있 음 을 알 수 있 습 니 다.이러한 root 명령 은 server 블록 이 서비스 요청 으로 선택 되 었 으 나 자신의 root 명령 이 없 을 때 사용 된다.
    다음은 이전 절 에 있 는 서버 설정 을 사용 하여 프 록 시 서버 설정 으로 변경 합 니 다.첫 번 째 location 블록 에서 root 명령 과 매개 변수 에서 지정 한 프 록 시 서버 의 프로 토 콜, 이름과 포트 를 함께 놓 습 니 다 (이 예 에서 location.
    server{
        location / {
            proxy_pass http://localhost:8080;
        }
        
        location /images/ {
            root /data;
        }
    }
    

    두 번 째 위치 블록 을 수정 할 것 입 니 다. 이 위치 블록 은 현재 proxy_pass 접 두 사 를 가 진 요청 을 http://localhost:8080 디 렉 터 리 에 있 는 파일 에 표시 하여 전형 적 인 파일 확장자 가 있 는 이미지 의 요청 과 일치 하도록 합 니 다.수 정 된 위치 블록 은 다음 과 같 습 니 다.
    location ~\.(gif|jpg|png){
        root /data/images;
    }
    

    이 매개 변 수 는 정규 표현 식 으로 / images /, /data/images 또는 .gif 로 끝 나 는 모든 URI 와 일치 합 니 다.정규 표현 식 의 표 시 는 12316 으로 시작 해 야 합 니 다.해당 요청 은 .jpg 디 렉 터 리 에 매 핑 됩 니 다.
    nginx 가 요청 을 서비스 하기 위해 .png 블록 을 선택 할 때, 먼저 지정 한 접두사 의 location 명령 을 검사 하고, 가장 긴 접두사 가 있 는 location 를 기억 한 다음 정규 표현 식 을 검사 합 니 다.정규 표현 식 이 일치 하면 nginx 는 이것 /data/images 을 선택 합 니 다. 그렇지 않 으 면 이전에 기억 한 위 치 를 선택 합 니 다.
    프 록 시 서버 의 최종 설정 은 다음 과 같 습 니 다.
    server{
    	location / {
    		proxy_pass http://localhost:8080/;
    	}
        location ~ \.(gif|jpg|png)${
            root /data/images;
        }
    }
    

    이 서버 는 location, location 또는 .gif 로 끝 나 는 요청 을 걸 러 내 고 .jpg 디 렉 터 리 에 비 추어 (URI 를 루트 명령 의 인자 에 추가 함으로써) 위 에 설 정 된 프 록 시 서버 에 모든 요청 을 전달 합 니 다.
    더 많은 명령 을 사용 하여 프 록 시 연결 을 설정 할 수 있 습 니 다.
    FastCGI 프 록 시 설정 (FastCGI 프 록 시 설정)
    nginx 는 요청 경 로 를 FastCGI 서버 로 이동 하 는 데 사용 되 며, FastCGI 서버 는 다양한 프레임 워 크 와 프로 그래 밍 언어 (예: PHP) 로 구 축 된 프로그램 을 실행 할 수 있 습 니 다.
    FastCGI 서버 와 함께 사용 되 는 가장 기본 적 인 Nginx 설정 은 .png 명령 이 아 닌 /data /images 명령 을 사용 하 는 것 을 포함 하고, fastcgi_pass 명령 은 FastCGI 서버 에 전달 되 는 인 자 를 설정 하 는 데 사용 된다.FastCGI 서버 에 proxy_pass 접근 할 수 있다 고 가정 합 니 다.상기 절 에 있 는 프 록 시 설정 을 바탕 으로 fastcgi_param 명령 으로 localhost:9000 명령 을 교체 하고 매개 변 수 를 fastcgi_pass 로 변경 합 니 다.PHP 에서 proxy_pass 인 자 는 스 크 립 트 이름 을 확인 하 는 데 사용 되 고 localhost:9000 인 자 는 요청 인 자 를 전달 하 는 데 사 용 됩 니 다.설정 결 과 는:
    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 프로 토 콜 을 통 해 정적 이미지 요청 을 제외 한 모든 요청 경 로 를 SCRIPT_FILENAME 에서 실행 중인 프 록 시 서버 로 설정 합 니 다.

    좋은 웹페이지 즐겨찾기