相比 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 再傳送這些請求。當客戶端需要的時候,它已經在客戶端了。
listen 443 ssl http2;
centos7下openssl version報錯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/client_temp」 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
Nginx 支援Http2協議
要開啟http 2協議支援,需要在nginx 1.10以上版本並且需要openssl庫的版本在1.0.2以上編譯。http 2.0只支援開啟了https的 檢視當前openssl版本 需要openssl庫的版本在1.0.2以上 openssl version可以看到我這裡的版本正好是1.0.2 滿足...
公升級NGINX支援HTTP 2服務端推送
nginx從1.13.9版本開始支援http 2服務端推送,上週找時間公升級了下nginx,在部落格上試驗新的特性。公升級工作主要包括 公升級nginx 修改nginx配置 修改wordpress主題 1 配置nginx官方的yum源。建立配置檔案 etc yum.repos.d nginx.rep...
公升級HTTP 2協議
首先只有使用https協議的站點可以公升級http 2協議 nginx如果想要公升級http 2需要滿足以下要求 nginx版本要高於1.9.5 with http ssl module 跟 with http v2 module 必帶 因為http2.0協議需要使用https協議。yum inst...