Nginx 서버 기능 모듈

5290 단어
Nginx 와 Apache 의 차이 점
1. Nginx 와 Apache 의 장점 비교
이 문제 에 대해 어느 것 이 좋 은 지 말 할 수 없다. 그 자체 가 장단 점 이 있다. 예 를 들 어 아파 치 는 수백 개의 모듈 을 제공 했다. 모듈 은 기능 을 의미 하지만 아파 치 서버 로 서 최대 2000 여 개의 병발 량 만 있 고 Nginx 가 제공 하 는 모듈 도 몇 십 개 이지 만 그 는 20000 개의 병 방 량 을 제공 할 수 있다.Apache 는 기능 이 많 고 Nginx 는 기능 이 적 지만 잘 설명 할 수 있 는 말 이 있 습 니 다.
Apache  Office  ,        ,             
 ,Nginx        ,             Apache  50 。
                                --Chris Lea,ChrisLea.com

2. Nginx 에서 클 라 이언 트 요청 처 리 를 받 는 각도 에서 아파 치 와 다르다.
Nginx 는 이벤트 구동 구 조 를 사용 합 니 다. 비동기 요청 소켓 을 사용 하여 요 구 를 받 아들 이 고 비 차단 구조 로 단독 현성 처리 가 적용 되 지 않 습 니 다. 메모리 와 CPU 의 비용 을 줄 이기 위해 서 입 니 다.한편, 아파 치가 사용 하 는 동기 화 소켓, 스 레 드, 프로 세 스 는 모든 요청 이 하나의 프로 세 스 와 라인 시 티 로 처 리 됩 니 다.
Nginx 서버 기능 모듈
1. 데 이 터 를 제한 하 는 것 은 다운 로드 를 제공 하 는 사이트 에 있어 데이터 현 가 를 해 야 합 니 다. Nginx 에서 우 리 는 데 이 터 를 제한 할 수 있 고 코어 모듈 에서 limit 를 제공 합 니 다.rate、limit_rate_after 명령.
(a) 지령 limitrate 명령 어 명칭: limitrate 사용 환경: http, server, location, if in location 기본 값: no
이 명령 은 클 라 이언 트 에 데 이 터 를 전송 하 는 속 도 를 지정 하 는 데 사용 되 며 속도 의 단 위 는 초당 전송 되 는 바이트 수 입 니 다.이 명령 은 하나의 연결 에 대한 설정 일 뿐이다. 즉, 두 개의 연결 이 동시에 있 으 면 그들의 속 도 는 이 명령 이 설정 한 두 배가 될 것 이다. 마치 우리 의 광대 역 대역 폭 과 같다.
서버 단계 에서 클 라 이언 트 연결 을 제한 해 야 할 경우 – 이 명령 은 적합 하지 않 을 수도 있 지만 $limit 를 설정 할 수 있 습 니 다.rate 변 수 는 이 변수 에 해당 하 는 값 을 전달 합 니 다. 예 를 들 어:
server{
    if($slow){
        set $limit_rate 4k;
    }
}

(b) 지령 limitrate_after 명령 명: limitrate_after 사용 환경: http, server, location, if in location 의 if 필드 기본 값: limitrate_after 1m
이 명령 은 "......................................................................................rate_after 의 매개 변 수 는 시간 값 이 아 닌 다운로드 바이트 의 크기 입 니 다. 예 를 들 어 limitrate_애 프 터 3m 는 3MB 를 최대 속도 로 다운로드 한 후 를 말한다.
예 를 들 면:
location /download{ limit_rate_after 3m; limit_rate 512k; }

클 라 이언 트 가 연결 되면 가장 빠 른 속도 로 3MB 를 다운로드 한 후 512 k 의 속도 로 다운로드 한 다 는 뜻 이다.
2 、 사용자 의 동시 접속 수 제한 limitzone 모듈 은 사용자 의 연결 수 를 제한 하고 같은 사용자 의 IP 주소 의 동시 연결 수 를 제한 합 니 다.이 모듈 은 두 개의 명령 을 제공 합 니 다: limitzone 과 limitconn, 그 중 limitzone 은 http 구간 에서 만, limitconn 은 http, server, location 구간 에 사용 할 수 있 습 니 다.
예시:
http{
    limit_zone  one  $binary_remote_addr  10m;
    server{
        location /download/{
            limit_conn one 1;
        }
    }
}

(a) 지령 limitzone 명령 어 이름: limitzone 문법: limitzone zone_name $variable memory_max_size 사용 환경: http 기본 값: no
이 명령 은 zone 을 정의 하 는 데 사 용 됩 니 다. 이 zone 은 답장 상 태 를 저장 하 는 데 사 용 됩 니 다.저장 할 수 있 는 세 션 수 는 배 송 된 변수 와 memory 입 니 다.max_사이즈 의 크기 가 결 정 됩 니 다.예 를 들 어 limit_zone one $binary_remote_addr 10m; 클 라 이언 트 의 IP 주 소 는 세 션 으로 사 용 됩 니 다. 주의: 여 기 는 remote 가 아 닌 biary remoteaddr 를 사용 합 니 다.addr, 이것 은 remoteaddr 의 길 이 는 7 - 15 바이트 이 고 회화 정보의 길 이 는 32 바이트 입 니 다.1MB 의 zone 을 설정 할 때 binary 를 사용 하면remote_addr 방식 으로 이 zone 은 32000 개의 세 션 을 저장 합 니 다.
(b) 지령 limitconn 명령 어 이름: limitconn 문법: limitconn zone_name max_clients_per_ip 사용 환경: http, server, location 기본 값: no
이 명령 은 세 션 의 최대 병렬 연결 수 를 설정 하 는 데 사 용 됩 니 다.요청 수가 이 제한 을 초과 하면 503 오류 가 발생 합 니 다.예 를 들 면:
limit_zone  one  $binary_remote_addr  10m;

server{
    location /download/{
        limit_conn one 1;
    }
}

이 설정 은 두 글자 와 같은 ip 의 동시 연결 수 를 1 개 이상 초과 할 수 없 게 합 니 다.
(b) 지령 limitconn_log_level 명령 어 이름: limitconn_log_level 문법: limitconn_log_level log_level info | notice | warn | error 사용 환경: http, server, location 기본 값: error 이 명령 은 오류 단 계 를 설정 하 는 데 사 용 됩 니 다. 연결 이 제한 되면 오류 로그 가 발생 합 니 다.
종합 실례:
worker_progresses  4;

event{
    worker_connection 10240;
}

http{
    include  mime.types;
    default_type  application/octet-stream;
    sendfile  on;
    keepalive_timeout 65;
    limit_zone  flv_down  $binary_remote_addr  10m;

    server{
        listen 80;
        server_name flv.abc.com;
        ....
        location /download{
            limit_conn flv_down  1;
        }
    }
    error_page  500 502 503 504 /50x.html;
        location =/50x.html{
            root html;
        }
}

1 、 limit 사용zone 명령 은 zone 을 flv 로 정의 합 니 다.down
limit_zone  flv_down  $binary_remote_addr  10m;

flv_down: zone 이름 입 니 다. 무제 한 입 니 다.biary remoteaddr: 하나의 변수 로 클 라 이언 트 간 의 차 이 를 만 들 고 다른 변 수 를 선택 하여 구별 할 수 있 지만 가장 전형 적 인 것 은 biary 입 니 다.remote_addr, 여기 서 사용 하 는 바 이 너 리 형식의 IP 주 소 는 ASCII 형식 보다 효율 적 입 니 다.10m: 크기 제한 에 사용
2 、 limit 사용conn 명령 으로 limit 실현zone 명령 의 정의 zone, 1 은 동시 연결 수량 을 표시 합 니 다.
limit_conn flv_down  1;

좋은 웹페이지 즐겨찾기