在原有基础上修改编译选项来开启http2
回见
http://blog.youkuaiyun.com/tao_627/article/details/60957521在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://blog.youkuaiyun.com/tao_627/article/details/77263080
测试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