nginx 최적화 관리

6980 단어 nginxlinux
글 목록
  • 1. nginx 소개
  • 1. nginx 역사
  • 2. nginx 네트워크 모델
  • 3. nginx 특성
  • 4. nginx 장점
  • 5. 압력 측정 도구 ab 의 사용
  • 2. 컴 파일 설치 과정 최적화
  • 1. 프로필 수정
  • 2. 특정한 CPU 에 지정 한 CPU 유형 컴 파일 최적화
  • 3. 숨겨 진 버 전 번호
  • 4. TCMalloc 를 이용 하여 Nginx 의 성능 최적화
  • 1. libunwind 라 이브 러 리 설치
  • 2. google - perftools 설치
  • 3. nginx 재 컴 파일
  • 4. google - perftools 에 스 레 드 디 렉 터 리 추가
  • 5. Nginx 메 인 프로필 수정
  • 6. 운행 상태 검증
  • 7. nginx 커 널 파라미터 최적화
  • 5. 프로필 최적화
  • 1. 기본 최적화
  • 2. 간단 한 프로필
  • 3. ulimit 시스템 연결 수 에 대한 최적화
  • nginx 소개
    1. nginx 역사
    Nginx 는 러시아인 들 이 작성 한 매우 경량급 HTTP 서버 입 니 다. Nginx 는 발음 이 "engine X" 이 고 고성능 HTTP 와 역방향 프 록 시 서버 이 며 IMAP / POP 3 / SMTP 프 록 시 서버 입 니 다. Nginx 는 러시아인 Igor Sysoev 가 러시아 방 문 량 에서 두 번 째 로 많은 Rambler. ru 사이트 에서 개발 되 었 습 니 다.
    2. nginx 네트워크 모델
    Nginx 는 이벤트 구동 (epoll) 방식 으로 작성 되 었 기 때문에 매우 좋 은 성능 을 가지 고 있 으 며 매우 효율 적 인 역방향 에이전트, 부하 균형 이기 도 합 니 다.Lighttpd 와 일치 하 는 성능 을 가지 고 있 으 며, Lighttpd 의 메모리 누 출 문제 도 없 으 며, Lighttpd 의 modproxy 에 도 문제 가 있 고 오랫동안 업데이트 되 지 않 았 습 니 다.그러나 Nginx 는 cgi 방식 의 실행 을 지원 하지 않 습 니 다. 이 로 인해 발생 하 는 프로그램의 빈틈 을 줄 일 수 있 기 때 문 입 니 다.그래서 반드시 FastCGI 방식 으로 PHP 프로그램 을 실행 해 야 한다.
    3. nginx 특성
    nginx 는 HTTP 서버 로 서 다음 과 같은 몇 가지 기본 기능 이 있 습 니 다.
  • 정적 파일, 색인 파일 및 자동 색인 처리;파일 설명자 버퍼 를 엽 니 다.
  • 캐 시 없 는 역방향 에이전트 가속, 간단 한 부하 균형 과 잘못 사용.
  • FastCGI, 간단 한 부하 균형 과 잘못 사용.
  • 모듈 화 된 구조.gzipping, byte ranges, chunked responses, SSI - filter 등 filter 를 포함 합 니 다.한 페이지 에 존재 하 는 여러 SSI 를 FastCGI 나 다른 프 록 시 서버 에서 처리 하면 서로 기다 리 지 않 고 병행 할 수 있 습 니 다.

  • 4. nginx 장점
  • nginx 는 성능 최적화 를 위해 개발 되 었 고 성능 은 가장 중요 한 고려 이 며 실현 에 있어 효율 을 매우 중시한다.이 는 커 널 ePoll 모델 을 지원 하고 높 은 부하 의 시련 을 겪 을 수 있 으 며 50, 000 개의 동시 연결 수 를 지원 할 수 있다 는 보고 가 있다.
  • nginx 는 높 은 안정성 을 가지 고 있다.다른 HTTP 서버 는 접근 의 피크 수 치 를 만 나 거나 누군가가 악의 적 으로 느 린 속도 로 연결 을 할 때 서버 의 물리 적 메모리 가 자주 소모 되 어 응답 을 잃 고 서버 를 다시 시작 할 수 있 습 니 다.예 를 들 어 현재 apache 가 200 개 이상 의 프로 세 스 에 오 르 면 웹 응답 속도 가 현저히 느 려 집 니 다.한편, Nginx 는 단계별 자원 배분 기술 을 사용 하여 CPU 와 메모리 사용량 이 매우 낮다.nginx 는 공식 적 으로 10, 000 개의 활동 적 인 연결 을 유지 하고 2.5M 메모리 만 차지 하기 때문에 DOS 와 같은 공격 은 nginx 에 게 거의 쓸모 가 없다 고 밝 혔 다.안정성 에 있어 서 nginx 는 lighthttpd 보다 한 수 위 다.
  • nginx 는 열 배 치 를 지원 합 니 다.그것 의 시동 은 매우 쉬 우 며, 거의 7 * 24 를 쉬 지 않 고 운행 할 수 있 으 며, 수 개 월 을 운행 하 더 라 도 다시 시작 할 필요 가 없다.너 는 또한 끊 임 없 는 서비스 상황 에서 소프트웨어 버 전 을 업그레이드 할 수 있다.

  • 5. 압력 측정 도구 ab 의 사용
    ab -n 10 -c 10 http://opslinux.com/
    #-n         ,
    #-c         (      -n    )
    #     ,      。
    

    다음 과 같은 정 보 를 되 돌려 줍 니 다 (빨간색 부분 은 제 설명 입 니 다).
    This is ApacheBench, Version 2.0.40-dev  apache-2.0
    Copyright 1996 Adam Twiss, Zeus Technology Ltd, [http://www.zeustech.net/](http://www.zeustech.net/)
    Copyright 2006 The Apache Software Foundation, [http://www.apache.org/](http://www.apache.org/)
    
    Benchmarking http://www.yi1.com.cm/ (be patient)…..done
    Server Software:        Apache/2.2.4
    Server Hostname:        [http://opslinux.com/](http://opslinux.com/)
    Server Port:            80
    
    Document Path:          /
    Document Length:        31848 bytes
    
    Concurrency Level:      10
    Time taken for tests:   1.722254 seconds/*      */
    Complete requests:      10/*      */
    Failed requests:        0/*      */
    Write errors:           0
    Total transferred:      323490 bytes/*   */
    HTML transferred:       318480 bytes/*HTML   */
    Requests per second:    5.81 [#/sec] (mean)/*     */
    Time per request:       1722.254 [ms] (mean)/*      */
    Time per request:       172.225 [ms] (mean, across all concurrent requests)/*        (  )*/
    Transfer rate:          182.90 [Kbytes/sec] received/*    */
    Connection Times (ms)
    min  mean[+/-sd] median   max
    Connect:      165  166   1.2    167     168
    Processing:  1300 1418  91.5   1427    1554
    Waiting:      803  925  92.9    929    1064
    Total:       1465 1585  92.2   1595    1721
    
    Percentage of the requests served within a certain time (ms)
    50%   1595/*50%         1595*/
    66%   1620/*66%         1620*/
    75%   1668
    80%   1706
    90%   1721
    95%   1721
    98%   1721
    99%   1721
    100%   1721 (longest request)/*      1721*/
    

    2. 컴 파일 설치 과정 최적화
    1. 프로필 수정
    Nginx 를 컴 파일 할 때 기본적으로 debug 모드 로 진행 되 며, debug 모드 에 서 는 추적 과 ASSERT 같은 정 보 를 많이 삽입 합 니 다. 컴 파일 이 완료 되면 Nginx 는 여러 메가바이트 가 있어 야 합 니 다.컴 파일 하기 전에 Nginx 의 debug 모드 를 취소 합 니 다. 컴 파일 이 끝 난 후에 Nginx 는 수천 바이트 밖 에 없 기 때문에 컴 파일 하기 전에 관련 소스 코드 를 수정 하고 debug 모드 를 취소 할 수 있 습 니 다. 구체 적 인 방법 은 다음 과 같 습 니 다. Nginx 소스 코드 파일 이 압축 을 풀 린 후에 소스 디 렉 터 리 에 있 는 auto / cc / gcc 파일 을 찾 으 면 다음 과 같은 몇 줄 을 찾 을 수 있 습 니 다.
    # debug
    # CFLAGS=”$CFLAGS -g” //      
    

    2. 특정 CPU 를 위 한 CPU 타 입 컴 파일 최적화
    Nginx 를 컴 파일 할 때 기본 GCC 컴 파일 매개 변 수 는 "- O" 입 니 다. GCC 컴 파일 을 최적화 하려 면 다음 두 개의 매개 변 수 를 사용 할 수 있 습 니 다.
    --with-cc-opt='-O3' \
    --with-cpu-opt=CPU  #     CPU   ,      :pentium, pentiumpro, pentium3, pentium4, athlon, opteron, amd64, sparc32, sparc64, ppc64
    

    CPU 종 류 를 확인 하려 면 다음 명령 을 사용 할 수 있 습 니 다.
    cat /proc/cpuinfo | grep "model name"
    

    3. 버 전 번호 숨 기기
    nginx 설정 파일 의 http 탭 에 "server tokens off;" 인 자 를 추가 하면 server 태그 와 location 태그 에서 또는 소스 코드 에서 변경 할 수 있 습 니 다.
    src/core/nginx.h
    #define NGINX_VERSION  "1.6.2" //           2.4.3
    #define NGINX_VER "nginx/"    Apache
    

    src/http/ngx_http_header_filter_module.c
    static char ngx_http_server_string[] ="Server:nginx"  //  apache
    

    src/http/ngx_http_special_response.c
    static u_char ngx_http_error_full_tail[] =
    "
    "
    NGINX_VER "" CRLF "

    좋은 웹페이지 즐겨찾기