在Tengine中開啟HTTP/2

jopen 8年前發布 | 18K 次閱讀 HTTP Tengine Web服務器

在Tengine中開啟HTTP/2

服務器 Nginx December 30 2015

今天看到淘寶的 Tengine 發布了2.1.2版本,看了一下 CHANGES 發現已經支持HTTP/2,支持向后兼容SPDY。馬上動手進行更新,為現在的服務器加上帥氣的HTTP/2。

關于 HTTP/2

HTTP/2的重要特性完全源自SPDY。(詳見: 使用HTTP/2提升性能的7個建議 )

  • HTTP/2是二進制(而文本)協議,因此更簡潔高效;
  • 它針對每個域只使用一個多路復用的連接,而不是每個文件一個連接;
  • 首部使用特制的HPACK協議(而非SPDY中使用的gzip)壓縮;
  • HTTP/2設計了復雜的優先級排定規則,幫助瀏覽器首先請求最急需的文件,而NGINX已經支持(SPDY的方案要簡單一些)。
  • </ul>

    性能表現參照: HTTPS、SPDY和HTTP/2的性能比較

    Tengine 開啟 HTTP/2 步驟

    首先 clone 或者 pull 更新 Tengine 最新代碼并 checkout 到 2.1.2

    git clone https://github.com/alibaba/tengine.git
    cd tengine

    或者在已有目錄 : git pull

    git checkout 2.1.2</pre>

    配置開啟 http_v2_module 并 make

    ./configure --with-http_ssl_module --with-http_v2_module

    如果需要其他模塊請參考:./configure --help

    make</pre>

    檢測編譯結果:

    $ objs/nginx -v
    Tengine version: Tengine/2.1.2 (nginx/1.6.2)

    如果看到 Tengine/2.1.2 就證明版本編譯對了

    $ objs/nginx -V

    結果中有 ngx_http_v2_module (static) 就是 HTTP/2 模塊正常</pre>

    更新 Tengine 或替換現有的 Nginx

    # 查看現有 Nginx 的目錄
    $ which nginx
    /usr/sbin/nginx

    替換 Nginx

    $ sudo cp -f objs/nginx /usr/sbin/nginx</pre>

    Nginx 配置中啟用站點對 HTTP/2 的支持

    在配置文件中移除所有 listen 命令包含的 spdy 模塊變量,然后在 listen 時加上 http2 就可以了,例如:

    listen 443 ssl http2 fastopen=3;

    檢測現有 Nginx 配置并重啟

    $ sudo nginx -t
    the configuration file /etc/nginx/nginx.conf syntax is ok
    configuration file /etc/nginx/nginx.conf test is successful

    如果顯示 ok 以及 successful 就是沒問題了

    $ sudo service nginx restart</pre>

    至此你的網站就已經有了 HTTP/2 了。

    檢驗是否啟用也很簡單,在 Chrome 的開發者工具的 Network 選擇卡,刷新網站就能看到相關的請求的 Protocol 從 http/1.1 變成了 h2 。

    相關內容

    2.1.2的更新日志如下(詳見: CHANGES.cn ):

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!