在Tengine中開啟HTTP/2
在Tengine中開啟HTTP/2
今天看到淘寶的 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 ):
- Feature: ngx_http_reqstat_module 模塊可以跟蹤記錄請求的內部重定向
- Feature: 支持HTTP/2,支持向后兼容SPDY
- Feature: ngx_debug_pool 模塊協助分析內存狀況
- Feature: 支持 $upstream_cookie 變量
- Bugfix: 修復 ngx_http_dyups_module 模塊對相同后端服務器合并的問題
- Bugfix: 修復不能編譯 lua-upstream-nginx-module 模塊的問題
- Bugfix: 修復 ngx_http_concat_module 模塊對javascript無效的問題
</ul>
參考
- Nginx 開始支持 HTTP/2 了
- HTTPS、SPDY和HTTP/2的性能比較
- 使用HTTP/2提升性能的7個建議
</ul>
</div>
</code></code></code></code></code></code>
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!