在原有基础上修改编译选项来开启http2
回见
http://www.jb51.cc/article/p-rqywpqne-bbs.html在Nginx源码目录下的configure选项中加入--with-http_v2_module,由于HTTP2需要SSL的支持,因此如缺少--with-http_ssl_module选项,还需要加入--with-http_ssl_module。
如下:
./configure --with-pcre=/usr/local/src/pcre-8.40 \--with-zlib=/usr/local/src/zlib-1.2.11 \
--with-openssl=/usr/local/src/openssl-1.1.0e \
--add-module=/usr/local/src/Nginx_modules_demo/ngx_http_mytest_module \
--with-http_ssl_module \
--with-threads \
--with-http_v2_module \
--with-debug
make
make install
注意:中途增加第三方模块并重新编译安装Nginx,原有/usr/local/Nginx/conf下面的文件并不会覆盖
配置ssl证书
调研了一下申请免费证书的基本步骤,发现首先需要注册一个合法域名,dns可以解析到这个域名,才能针对这个域名申请证书。
这个对于只做demo的我来说,比较难办。于是我找到一个讨巧的方法,直接去公司线上找一个小文件的服务域名的证书和私钥,配置在本地测试服务器上。
过程略。
比如说,这个域名是www.xyaz.cn,它的服务器证书和私钥分别记为server.crt和server.key文件。
下面配置Nginx.conf,得到
# HTTPS server server { listen 443 ssl http2 default_server; server_name localhost; ssl on; ssl_certificate /usr/local/Nginx/conf/server.crt; ssl_certificate_key /usr/local/Nginx/conf/server.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { root html; index index.html index.htm; } }
检查Nginx配置是否正确?
/usr/local/Nginx/sbin/Nginx -t
编译带有http2功能的curl作为本地测试客户端
http://www.jb51.cc/article/p-anlwgnlt-bms.html
测试Nginx的http2功能
vim /etc/hosts
添加-行
127.0.0.1 www.xyaz.cn
本地测试
curl --http2 -vo test.out https://www.xyaz.cn/
参考文献 http://www.cnblogs.com/bugutian/p/6628455.html