Centos 6 Tengine Http 2 전송 프로 토 콜 열기

1. 머리말
최근 에 사이트 의 방문 속 도 를 최적화 시 켜 웹 사 이 트 를 위해 http2 협 의 를 열 었 는데 이 협 의 는 어떤 장점 이 있 습 니까?다음 과 같다.
  • http2 는 차세 대 전송 프로 토 콜 로 앞으로 보편적으로 사용 되 는 추세 입 니 다.
  • http2 는 도 메 인 이름 아래 자원 에 접근 하고 여러 요청 이 하나의 TCP 링크 를 공유 하기 때문에 http 1.1 보다 훨씬 빠르다 는 뜻 이다.

  • 2. 준비 작업
  • openssl 1.0.2 이상 버 전 을 다시 컴 파일 해 야 합 니 다. 우리 시스템 의 버 전 은 모두 centos 6 이기 때문에 openssl 을 직접 yum 으로 업데이트 하 는 것 은 지원 되 지 않 습 니 다. centos 7 이 라면 직접 yum update openssl - y 로 업데이트 할 수 있 습 니 다
  • openssl 을 컴 파일 한 후 openssl 의 라 이브 러 리 파일 을 다시 사용 하여 Tenginx 를 컴 파일 해 야 합 니 다. 저희 가 사용 하 는 Tengine 버 전 은 Tengine / 2.2.2 입 니 다.

  • 3. 조작 절차
  • openssl - 1.0.2t 설치
  • #  /usr/local/src,         
    cd /usr/local/src
    #     
    wget https://www.openssl.org/source/openssl-1.0.2t.tar.gz
    
    tar -zxvf openssl-1.0.2t.tar.gz
    
    cd openssl-1.0.2t
    
    ./config shared zlib
    #     /usr/local/ssl
    make && make install 
    #         
    mv /usr/bin/openssl /usr/bin/openssl.old
    mv /usr/include/openssl /usr/include/openssl.old
    #     
    ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
    ln -s /usr/local/ssl/include/openssl /usr/include/openssl
    #            
    echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
    #         
    ldconfig -p
    #  openssl  
    openssl version
  • Tenginx 설치
  • cd /usr/local/src
    
    wget http://tengine.taobao.org/download/tengine-2.2.2.tar.gz
    
    tar tengine-2.2.2.tar.gz
    
    cd tengine-2.2.2
    #        tengine   ,          openssl,                 ,        
    vim auto/lib/openssl/conf
    #   32         :
    CORE_INCS="$CORE_INCS $OPENSSL/.openssl/include"
    CORE_DEPS="$CORE_DEPS $OPENSSL/.openssl/include/openssl/ssl.h"
    CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a"
    CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a"
    #     ,    
    CORE_INCS="$CORE_INCS $OPENSSL/include"
    CORE_DEPS="$CORE_DEPS $OPENSSL/include/openssl/ssl.h"
    CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libssl.a"
    CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libcrypto.a"
    
    #       (    ,          ,       tenginx,       )
    yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel   gcc gcc-c++ autoconf automake jemalloc jemalloc-devel
    #    tenginx
    cd /usr/local/src/tengine-2.2.2  && ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-http_concat_module --with-jemalloc --with-http_v2_module --with-http_secure_link_module --with-openssl=/usr/local/ssl
    make
    ##  ,       tegninx,           
    make install
    #        ,        tengine
    cp -af /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_bak
    cp -af /usr/local/nginx/sbin/dso_tool /usr/local/nginx/sbin/dso_tool_bak
    #      tenginx     
    cp /usr/local/src/tengine-2.2.2/objs/nginx /usr/local/nginx/sbin/
    cp /usr/local/src/tengine-2.2.2/objs/dso_tool /usr/local/nginx/sbin/
    #    Tengine,         
  • Tenginx http2 설정
  • #  http2   ,  :
    server {
        #http    http2     ,  80    
        listen 80
        # listen  https         http2
        listen 443 ssl http2;
        server_name www.qingye.info;
        .....
    }
    
    #           http2 Tenginx  
    
    upstream server_backend {
    
        server ip:80 weight=10;
    
        server ip:80 weight=10;    
    
        keepalive 800;
    #           Tenginx    ,  Tenginx                     
    
        check interval=5000 rise=3 fall=3 timeout=5000 type=tcp;
    }
    
    server {
        listen       80;
        listen       443 ssl http2;
        server_name   xxx.xxx.xxx;
    
        req_status server;
    
        ssl_certificate      /usr/local/nginx/certs/xxx.xxx.xxx.crt;
        ssl_certificate_key  /usr/local/nginx/certs/xxx.xxx.xxx.key;
        ssl_session_timeout  5m;
        ssl_protocols   TLSv1.1 TLSv1.2 TLSv1;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers   on;
    
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass_header User-Agent;
        proxy_set_header  X-Forwarded-Proto $scheme;
        proxy_set_header Connection "";
        proxy_http_version 1.1;
        access_log  logs/access.log  main;
    
    location / {
     proxy_pass http://server_backend/;
     access_log logs/server_backend.log main;
     }
    
    error_page 404 /404.html;
        location = /404.html {
            root html;
        }
    
    error_page   500 502 503 504  /50x.html;
    
        location = /50x.html {
            root   html;
        }
    }

    4. 효과 전시
    5. 총화
    1. 첫 번 째 설치 tenginx 와 업그레이드 절차 가 다 르 므 로 주의해 야 합 니 다.
    2. http 는 http2 전송 프로 토 콜 을 지원 하지 않 기 때문에 80 포트 는 http 1.1 프로 토 콜 을 사용 하고 https 는 http2 전송 프로 토 콜 을 사용 합 니 다.

    좋은 웹페이지 즐겨찾기