nginx 업그레이드 로 http 2 지원

5076 단어 수송 하 다.
원 클릭 업그레이드 스 크 립 트
https://github.com/whisshe/upHttp2.git
HTTP/2 의 장점
HTTP/1.x 에 비해 HTTP/2 는 바 텀 전송 에 큰 변경 과 최적화 가 되 었 습 니 다.
  • HTTP/2 는 HTTP/1.x 가 아 닌 바 이 너 리 형식 으로 데 이 터 를 전송 합 니 다.이 진 형식 은 프로 토 콜 의 해석 과 최적화 확장 에 있어 더 많은 장점 과 가능성 을 가 져 옵 니 다.
  • HTTP/2 는 메시지 헤드 를 HPACK 로 압축 전송 하여 메시지 헤드 가 차지 하 는 네트워크 의 데 이 터 를 절약 할 수 있다.한편,HTTP/1.x 는 요청 할 때마다 대량의 불필요 한 정 보 를 가지 고 대역 폭 자원 을 낭비 합 니 다.머리 압축 은 이 문 제 를 잘 해결 할 수 있다.
  • 다 중 재 활용,솔직히 모든 요청 은 하나의 TCP 연결 을 통 해 동시에 이 루어 진 다 는 것 이다.HTTP/1.x 를 통 과 했 지만 pipeline 동시 요청 도 할 수 있 지만 여러 요청 간 의 응답 이 막 힐 수 있 습 니 다.그래서... pipeline 아직 까지 보급 되 지 않 았 고 HTTP/2 는 진정한 병행 요 구 를 했다.또한 흐름 은 우선 순위 와 데이터 제어 도 지원 한다.
  • Server Push:서버 에서 클 라 이언 트 에 게 자원 을 더 빨리 전달 할 수 있 습 니 다.예 를 들 어 서버 는 JS 와 CSS 파일 을 클 라 이언 트 에 게 자발적으로 보 낼 수 있 으 며 클 라 이언 트 가 HTML 을 분석 하지 않 고 이 요청 을 보 낼 필요 가 없다.클 라 이언 트 가 필요 할 때 클 라 이언 트 에 있 습 니 다.

  • HTTP 2 업그레이드 필요 조건
  • 1.10.0 버 전 이상 의 nginx 는 1.0.2 이상 버 전의 openssl 을 바탕 으로
  • 을 컴 파일 합 니 다.
  • 은 https
  • 을 지원 해 야 합 니 다.
    소프트웨어 설치 위치
  • openssl
  • 컴 파일 위치/usr/local/openssl
  • 소프트 링크 위치/usr/bin/openssl/usr/include/openssl
  • nginx
  • 컴 파일 및 프로필 위치/etc/nginx

  • 모든 게임 서버 의 nginx 와 OpenSSL 업그레이드
  • openssl 업그레이드
  • 구 버 전의 openssl 백업
    mv /usr/bin/openssl /usr/bin/openssl.old
    mv /usr/include/openssl /usr/include/openssl.old
  • 1.1 버 전의 openssl 을 다운로드 하고 압축 해제 컴 파일
    wget https://www.openssl.org/source/openssl-1.1.0g.tar.gz
    tar zxvf openssl-1.1.0g.tar.gz
    cd openssl-1.1.0g/
    ./config --prefix=/usr/local/openssl shared zlib
    make depend
    make && make install
    ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
    ln -s /usr/local/openssl/include/openssl /usr/include/openssl( )
    cd /usr/local/openssl/lib
    ln -s libssl.so.1.1 libcrypto.so.1.1 /lib/x86_64-linux-gnu/
    echo /usr/local/openssl/lib >> /etc/ld.so.conf
  • openssl 버 전 정보 검증
    openssl version
    if [[ `openssl version |awk '{print $2}'` == 1.1.0g ]];then
    echo ok
    fi
  • nginx 업그레이드(원본 컴 파일)원본 프로필 을 잃 어 버 리 지 않 습 니 다.
  • 원본 패키지 wget 다운로드http://nginx.org/download/nginx-1.12.2.tar.gz
  • 압축 해제 컴 파일 설치 컴 파일 링 nginx 를 설치 할 때–with-openssl 인 자 는 기본적으로 OpenSSL 의 소스 코드 만 지원 하고 컴 파일 된 OpenSSL 은 지원 되 지 않 습 니 다.nginx 의 압축 해제 디 렉 터 리 에서 auto/lib/openssl/conf sed "s/.openssl\///" c 을 수정 하여 파일 의.openssl 을 제거 할 수 있 습 니 다.컴 파일 된 openssl 경 로 를 지원 할 수 있 습 니 다.
    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"
    정식 컴 파일"`./configure–prefix=/etc/nginx\–sbin-path=/usr/sbin/nginx\\–conf-path=/etc/nginx/nginx.conf\–error-log/nginx/error.log\–http-log-path=/var/log/nginx/access.log\–pid-path=/var/run/nginx.pid\–lock-path=/var/run/nginx.lock\–http-client-body-temp-path=/var/cache/nginx/client_temp \ –http-proxy-temp-path=/var/cache/nginx/proxy_temp \ –http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \ –http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \ –http-scgi-temp-path=/var/cache/nginx/scgi_temp \ –with-http_ssl_module \ –with-http_realip_module \ –with-http_addition_module \ –with-http_sub_module \ –with-http_dav_module \ –with-http_flv_module \ –with-http_mp4_module \ –with-http_gunzip_module \ –with-http_gzip_static_module \ –with-http_random_index_module \ –with-http_secure_link_module \ –with-http_stub_status_module \ –with-http_auth_request_module \ –with-threads \ –with-stream \ –with-stream_ssl_module \ –with-http_slice_module \ –with-mail \ –with-mail_ssl_module \ –with-file-aio \ –with-http_v2_module \ –with-openssl=/usr/local/openssl


  • nginx 설정 수정
    listen 443 ssl  http2;
    

    발생 한 문제 및 해결
    centos 7 에서 openssl 버 전이 잘못 되 었 습 니 다 openssl:error while loading shared libraries:libssl.so.1.1
    echo /usr/local/openssl/lib >> /etc/ld.so.conf # openssl lib /etc/ld.so.conf
    ldconfig -v|grep libssl #

    nginx 재 부팅 오류 가 발생 했 습 니 다.nginx:[emerg]mkdir()"/var/cache/nginx/clienttemp” failed
    ls -l /var/cache/nginx/client_temp#
    mkdir -p /var/cache/nginx/client_temp #
    chown -R www-data:www-data /var/cache/nginx/client_temp # nginx , nginx.conf

    좋은 웹페이지 즐겨찾기