前幾天爲了使本身的接口支持https,就想直接使用http/2.0,配置的過程當中遇到一些小坑,寫個文章記錄一下,另外但願對剛開始配置的讀者一些幫助和參考。
明確咱們的最終目標,也就是標題:給本身的nginx配置http/2,爲了實現這個目標,並非咱們服務器已經有nginx就能夠了,你的nginx版本頗有可能不符合http/2的要求。由於,nginx從1.9.5版本纔開始默認支持http/2,並移除了SPDY
模塊。
若是你是剛開始搭建服務器環境,那麼很簡單,就直接安裝1.9.5以後的穩定版本nginx就好。爲了文章的完整性,再簡單說一下nginx的安裝。
在安裝nginx以前,請確保安裝了g++
和gcc
(可用yum
進行安裝)。nginx
先進入安裝目錄usr/local
,分別安裝openssl
、pcre
、zlib
。(請選擇最新穩定版本):shell
#下載: $ wget http://www.openssl.org/source/openssl-1.1.0h.tar.gz #解壓: $ tar -zxvf openssl-1.1.0h.tar.gz #進入源碼目錄並配置: $ cd openssl-1.1.0h $ ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl/conf #編譯安裝 $ make && make install #檢查安裝是否成功 $ /usr/local/openssl/bin/openssl version -a
用一樣的方法安裝好pcre
和zlib
。服務器
上面三個安裝好以後,再進行nginx安裝,步驟相似:code
#解壓 $ tar -zxvf nginx-1.8.0.tar.gz #進入安裝目錄 $ cd nginx-1.8.0 #配置 $ ./configure \ --user=www \ --group=www \ --prefix=/usr/local/nginx \ --with-http_ssl_module \ --with-http_v2_module \ --with-openssl=/usr/local/openssl-1.1.0h \ --with-pcre=/usr/local/pcre-8.37 \ --with-zlib=/usr/local/zlib-1.2.11 \ --with-http_stub_status_module \ --with-threads
配置的時候要注意的地方有兩點:
一個是要對應好openssl、pcre、zlib的源碼路徑和版本;
注意配置參數中的--with-http_v2_module,這是nginx1.9.5以後新增的模塊,專門用來支持http/2。因此要想進行後面的http/2配置,這個參數絕對不能漏。
而後編譯安裝:接口
$ make && make install
啓動:ssl
$ /usr/local/nginx/sbin/nginx
這樣你的nginx就基本搭建完成了。能夠直接訪問公網IP或者你的域名查看nginx默認歡迎頁。
下一節筆者將詳細講述如何使用letsencrypt配置http/2。get