Nginx 운영 노트

Nginx 프로필 의 각 단계
  • main: 주요 설정, 예 를 들 어 error log, workprosses
  • 이벤트: 이벤트 구동 과 관련 된 내용, 예 를 들 어 작업 방식 poll, epoll
  • httpd: http 관련 설정
  • server: 가상 호스트 설정
  • location: 가장 유연 한 설정
  • Nginx 에서 운영 정보 사용 하기 (status)
    server {
        
        .... ##      
    
        location /status {
            stub_status on;
            access_log off;
            allow 192.168.0.1; ##      IP
            allow 192.168.0.0/24;
            allow 127.0.0.1;
            deny all;
        }
    }
    

    상태 페이지 의 각 데이터 의 의미: active connections: 현재 Nginx 처리 중인 이벤트 연결 수 serveraccepts handled request: 총 처 리 된 링크, 성공 적 으로 처 리 된 악수 횟수, 총 얼마나 많은 요청 reading 을 처 리 했 습 니까? Nginx 클 라 이언 트 를 읽 은 Header 정보 수 writing: Nginx 클 라 이언 트 에 게 되 돌아 온 Header 정보 수 waiting: 오픈 keep-alive 의 경우 이 값 은 active - (reading + writing) 과 같 습 니 다. 바로 Nginx 다음 요청 명령 을 기다 리 고 있 는 상주 링크 를 처리 하 였 습 니 다.
    Nginx 역방향 에이전트
  • 역방향 에이 전 트 를 사용 하 라 는 명령 은 proxy_pass 입 니 다.
    server {
        listen 80;
        sever_name www.sucem.com
        location /{
                 
        }
        
        location /forum/ {
            /*   http://www.sucem.com/forum       
            http://www.sucem.com:8080/bbs     */
            proxy_pass: http://www.sucem.com:8080/bbs/ 
        }
    }
    
    * 주의: Location 에서 패턴 일치 (~, ~, ^ ~, = 등 기호) 를 사용 하면 방향 에이전트 에 URI 를 쓸 수 없습니다. 예 를 들 어 쓸 수 없습니다.http://www.sucem.com:8080/bbs/ 도착 할 수 밖 에 없다http://www.sucen.com:8080 까지. Nginx 는 자동 으로 일치 하 는 URI 에 따라 사이트 마지막 에 추 가 됩 니 다 * *
  • 역방향 에이전트 에 실제 클 라 이언 트 주 소 를 추가 하 는 데 필요 한 모듈 매개 변수:
  • $request uri: 요청 한 URI
  • $schema: 요청 한 모드 (http, https 등)
  • $server addr: 요청 한 서버 주소
  • $remote addr: 클 라 이언 트 의 주소
  • /*          location,         */
    server {
        ....
        
        location / {
            proxy_pass: http://192.168.100.101:8080;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
    
    /*                     (              ) */
    

    Nginx 부하 균형
    Nginx 의 역방향 에이전트 기능 은 주로 HttpUpstreamModule 모듈 에서 제공 된다.
    이 모듈 은 upstream 설정 블록 을 통 해 간단 한 부하 균형 기능 (폴 링, 최소 링크, 클 라 이언 트 IP) 을 제공 합 니 다. - 공식 문서
    예:
    upstream backend {
        server backend1.example.com weight=5;
        server backend2.example.com:8080;
        server unix:/tmp/backend3;
    }
        
    server {
        location / {
            proxy_pass http://backend;
        }
    }
    

    매개 변 수 는 비교적 간단 합 니 다. 설명 하지 않 겠 습 니 다. 주의해 야 할 것 은 server 설정 항목 에 http 을 추가 할 수 없습니다!
  • Nginx 백 엔 드 서버 건강 검진
  • 주로 server 설정 항목 의 두 가지 인 자 를 사용 합 니 다. max_fails, fail_timeout
  • 모든 백 엔 드 서버 가 다운 되면 sorry server
    server {
        listen 8080;
        servername localhost;
        root /web/errorpages;
        index index.html;
    }
    
    upstream backend {
        server backend1.example.com weight=5;
        server backend2.example.com:8080;
        server localhost:8080 down // down        sorry server
    }
    
  • 를 사용 할 수 있 습 니 다.
  • Nginx ip_haship_hash 을 통 해 같은 클 라 이언 트 를 같은 서버 로 정의 합 니 다. ip_hash 블록 에서 정의 합 니 다. 단, upstream 을 사용 하면 사용 할 수 없습니다 ip_hash
  • Nginx 캐 시 백 엔 드 서버 자원
  • Nginx 의 캐 시 는 메모리 공간 (키 와 대상 의 메타 데이터 저장) 과 디스크 공간 (실제 데 이 터 를 저장 하 는 데 사용)
  • 을 제공 해 야 합 니 다.
  • 명령 sorry server 을 사용 하여 캐 시 를 만 듭 니 다. 사용 할 수 있 는 인자:
  • levels: levels: 캐 시 하위 디 렉 터 리 의 단 계 를 정의 합 니 다. 예 를 들 어 2: 1 은 2 급 캐 시 하위 디 렉 터 리 를 표시 합 니 다. 1 층 하위 디 렉 터 리 는 2 글자 입 니 다. 2 급 하위 디 렉 터 리 는 1 글자 입 니 다. (최대 3 급 하위 디 렉 터 리, 하위 디 렉 터 리 당 최대 3 글자)
  • keys zone: 공유 메모리 에 이름 을 붙 입 니 다. 예 를 들 어 keys zone = first: 20m 는 first 라 는 메모리 공간 이 있 음 을 표시 합 니 다.
  • max size: 최대 캐 시 공간 입 니 다. 예 를 들 어 max size = 1g

  • example
    proxy_cache_path /nginx/cache/first levels=2:1 keys_zone=first:20m max_size=1g; 
    proxy_cache_valid 200 10m //  200     10  
    
    server {
        ...
        
        /*         ,        */
        add_header X-via $server_addr;
        
        /*            */
        add_header x_Cache $upstream_cache_status
        
        location / {
            ...
            proxy_cache first;
        }
    }
    

    좋은 웹페이지 즐겨찾기