Nginx 開始支援 HTTP/2 了
提醒:本文最後更新於 1243 天前,文中所描述的資訊可能已發生改變,請謹慎使用。
在我之前的「開始使用 HTTP/2」這篇文章裡,我提到過:Nginx 到年底才會支援 HTTP/2,於是本部落格使用 H2O 這個 Web Server 提供 HTTP/2 服務。
8 月初,Nginx 官方部落格發了一篇文章:「Announcing an Early Alpha Patch for HTTP/2」,也就是說 Nginx 終於開始對 HTTP/2 提供早期(Early Alpha)支援了。對於我這種以折騰為主的個人部落格來說,沒有理由不嘗試一下。
注:從 Nginx 1.9.5 開始,http_v2_module 已經替換了 ngx_http_spdy_module,故本文 patch 這一步請直接跳過。另外,本文關於 Nginx 的安裝和配置不再更新,請檢視最新版:
本部落格 Nginx 配置之完整篇。
Nginx 新增了 http_v2_module 模組用於提供 HTTP/2 服務,這個模組是以 Patch 形式提供。官方對此有三點說明:
- 強烈不建議用於生產環境;
- 現階段不支援 Server Push;
- 這個 Patch 會替換之前的 SPDY 模組,也就是說應用 Patch 後不能再給站點配置 spdy;
介紹完基本資訊,下面簡單寫下如何讓 Nginx 支援 HTTP/2:
現階段的 HTTP/2 補丁需要 Nginx 1.9.0 以上的版本,建議直接去 Nginx 官網下載最新原始碼包(當前是 1.9.3),然後去 OpenSSL 或 LibreSSL
接著,進入解壓好的 Nginx 原始碼目錄,下載並應用補丁:
cd nginx-1.9.3
wget http://nginx.org/patches/http2/patch.http2.txt
patch -p1 < patch.http2.txt
配置時,至少需要啟用 http_v2_module 和 http_ssl_module 這兩個模組:
./configure --with-openssl=../libressl-2.2.2 --with-http_v2_module --with-http_ssl_module
然後 make
並 make install
就搞定了。在 Nginx 配置中啟用站點對 HTTP/2 的支援也很方便,只需要在 listen
時加上 http2
就可以了,例如:
listen 443 ssl http2 fastopen=3 reuseport;
其他的配置之前的文章都寫過,這裡不重複了。另外,由於 HTTP/2 並不會使用 gzip 來壓縮頭部,之前用於 SPDY 的 spdy_headers_comp
配置已經不需要了,也就是說不會有類似於 http2_headers_comp
的配置。
經過一天的簡單試用,我發現 Nginx 這個 HTTP/2 補丁的穩定性還可以,所以先這樣用著,後續有什麼發現再補充。
Update @ 17/08:今天發現我的部落格在 firefox 下無法訪問(測試了 OSX 10.11 EI Capitan 和 Windows 10),具體表現為 TLS 握手階段連線被終止。其它瀏覽器都沒有問題,在 Nginx 配置中去掉對 HTTP/2 的支援也能讓 firefox 恢復正常。這個問題我暫時沒找到原因,我決定先回滾到 H2O 的版本,後續有進展再補充。經過驗證,是我的 SSL 加密方式配置問題,已經修復並切回 Nginx。
--EOF--
發表於 2015-08-16 23:08:30 ,並被新增「 Nginx 、 HTTP2 」標籤 。檢視本文 Markdown 版本 »
提醒:本文最後更新於 1243 天前,文中所描述的資訊可能已發生改變,請謹慎使用。
相關推薦
Nginx 開始支援 HTTP/2 了
提醒:本文最後更新於 1243 天前,文中所描述的資訊可能已發生改變,請謹慎使用。 在我之前的「開始使用 HTTP/2」這篇文章裡,我提到過:Nginx 到年底才會支援 HTTP/2,於是本部落格使用 H2O 這個 Web Server 提供 HTTP/2 服務。 8 月初,Nginx 官方部落格發
Volley支援HTTP/2
volley暫時是不支援HTTP/2的,這是官方的解釋Does volley Support HTTP/2 不過volley設計的擴充套件性特別好,volley提供的介面HttpStack,可以自己去實現來支援HTTP/2。在Android上,從4.4以後系統就已經支援HTTP/2,但
開始使用 HTTP/2
提醒:本文最後更新於 1312 天前,文中所描述的資訊可能已發生改變,請謹慎使用。 一直以來,我的部落格都在使用 Nginx。但它目前只支援到 SPDY/3.1,也不支援 Server Push,一直是我的一塊心病。Nginx 官方說今年年底會增加對 HTTP/2 的支援,還要等好久: We'
nginx完美支援thinkphp3.2.2
第一步:配置SERVER塊 server { listen 80; server_name www.domain.com domain.com; error_page 404/404.html; error_
2.Nginx學習-The HTTP Core module
nginx module http core module是Ngnix提供WEB服務的最核心模塊,默認被開啟。本篇文章將講述該模塊的一些配置配置文件結構:http { server {// virtual website location{ } }
HTTP/2 服務器推送(Server Push)教程(HTTP/2 協議的主要目的是提高網頁性能,配置Nginx和Apache)
tcp tac 面板 參考 寫入 修改 現實 多個 後端 HTTP/2 協議的主要目的是提高網頁性能。 頭信息(header)原來是直接傳輸文本,現在是壓縮後傳輸。原來是同一個 TCP 連接裏面,上一個回應(response)發送完了,服務器才能發送下一個,現在可以多個回
nginx做正向代理(Centos7,支援http和https)
預設的情況下,使用nginx做正向代理可以解析http請求, 對於諸如baidu.com這樣的https請求,nginx預設並不支援,不過我們可以藉助第三方模組來實現。 1、先說預設情況下的代理配置 配置方法如下: #user nobody
Android什麼版本開始支援藍芽4.2?答案:Android 7.0
轉自:https://blog.csdn.net/h_o_w_e/article/details/79874162 根據Android 7.0的相容性文件(https://source.android.com/compatibility/7.0/android-7.0-cdd.pdf) 裡面
談談 Nginx 的 HTTP/2 POST Bug
文章目錄 Bug 復現 產生原因 如何解決 提醒:本文最後更新於 774 天前,文中所描述的資訊可能已發生改變,請謹慎使用。 幾個月前,我發現在某些情況下,使用 Safari 無法登入我的部落格後臺。當時研究了一下,發現這是 Nginx 處理 HTTP/2 POST
Spark 2.3新版釋出,開始支援原生 Kubernetes_Kubernetes中文社群
開源社群越來越多人使用Kubernetes來進行資料處理、資料分析和處理機器學習計算,Kubernetes也增加了不少擴充功能,資源定製化、控制器定製化,以便對更深度整合這類專屬應用程式。 現在熱門的大資料分析平臺Spark在2.3新版中,開始原生支援Kubernetes。可以直接在一個現成K
Nginx支援http檔案上傳的配置
一. 相關模組安裝 檢視Nginx是否安裝了這兩個模組(nginx_upload_module和nginx_uploadprogress_module), 使用命令: $ nginx -V (注意是大寫),可以 檢視Nginx當時編譯時候的引數,如果發現有上述兩個模組,說明Nginx已經安裝了這兩個模組。 如
Nginx安裝配置,支援http以及https
一、Nginx安裝 如果yum安裝失敗,可從這個地方***下載相關rpm包,直接執行install.sh安裝即可二、配置http 修改配置檔案nginx.conf,安裝上邊的步驟安裝,應該是在/usr/local/webserver/nginx/conf這個目錄下
微軟ML.NET 0.5開始支援了TensorFlow人工智慧模型
微軟在5月釋出由微軟研究院開發、發展了十年的機器學習框架ML.NET,今釋出了ML.NET 0.5,最大的更新便是開始支援TensorFlow,開發者可以在ML.NET中直接使用已經訓練好的TensorFlow模型,進行評分(Scoring)。另外,微軟正在開發新的ML.NET API,屆時將會棄用現行的Le
如何判斷網站是否使用了HTTP/2
1. chrome://net-internals/#http2 在瀏覽器輸入chrome://net-internals/開啟網路觀察元件,然後選擇HTTP/2 2. chrome.loadTimes 這種方法更簡單,支援「Http2」的chrome
nginx配置將http請求轉發支援ssl雙向認證https請求的正向代理
一、引言 nginx 是否支援將http請求轉發為https支援ssl雙向認證,網上沒什麼用例可以參考,查詢各大開發運維社群了下有幾種說法 支援: 不支援: 不清楚家祭不忘告乃翁:
Nginx配置同一個域名同時支援http與https兩種方式訪問
server { listen 80; listen 443 ssl; ssl on; server_name 域名; index index.html index.htm index.php default.html default.htm default.php; ssl_certificate /usr
阿里雲(CentOS 7.2)+Nginx配置支援IPV6
這兩天IOS上架遇到一個問題,AppStore要求必須支援IPv6,這個問題令不少人腦仁疼,結合這兩天不斷的嘗試,現將配置過程總結如下,親測可用! 若要滿足AppStore要求應用支援IPV6需確
Java 9 和Spring Boot 2.0紛紛宣佈支援的HTTP/2到底是什麼?
關於HTTP/2,最近你可能沒少聽到過他,首先,如果你瞭解過Java 9的特性,那麼你會發現在Java9中,提供了新的方式來處理HTTP呼叫,提供了新的HTTP Client,將替代HttpURLConnection,並提供對WebSocket和HTTP/2的支援。還有前兩天
Nginx實現HTTP/2——原理、實踐與資料分析
HTTP/2(Hypertext Transfer Protocol Version 2)無疑是下一代網際網路加速技術的基石與方向,自誕生以來經歷了00~17 共 18 版草案,目前,已經擁有了明確的RFC標準:RFC 7540和RFC 7541。 目前支援
從零開始構建支援TLS1.2的Web伺服器Linux版(二) 配置Tomcat環境
博文目錄 下載Tomcat安裝包 在下載安裝Tomcat前,請確保已經按 (一) 配置JAVA環境 正確安裝配置好Java環境。 根據自己的需要選擇合適的安裝包,官方下載