http/2.0是http/1.1的升级版,简称h2,主要应用于https。和html的h5简称不在一个维度上。而http://继续使用http1协议.
优势参考文章 http://www.tuicool.com/articles/aqyMve
[color=red]注意,前方有大坑!!!!!!!!!!!!!!!![/color]
1)本实验中,不要使用 "nginx -s reload" 命令,重启不生效。而是要使用"nginx -s stop"之后再启动"nginx",配置文件才会生效。
2)官方明确说明openssl必须是1.0.2(1.1.0编译不过去,1.0.0中http2不生效),参考文章:http://nginx.org/en/docs/http/ngx_http_v2_module.html
3)nginx必须是1.9.5之后,1.11.x页可以
1.安装nginx(ssl、http2模块)
nginx1.9.5开始正式支持http2,目前最新的版本是1.9.15。
centos安装依赖
yum -y install make gcc zlib zlib-devel openssl openssl-devel pcre pcre-devel
ubuntu安装依赖
apt-get install openssl libssl-dev gcc++ zlib1g-dev libpcre3-dev
其中openssl模块也可以自定义安装(),--with-openssl=/opt/openssl-1.0.2h可以自定义制定openssl的安装位置。我们采用系统的openssl。
官方要求1.0.2版本以上,通过openssl version可以查看
解压以后(configure的几个参数是关键,支持http2和ssl),还是三步走:configure,make,make install
./configure --prefix=/opt/nginx/nginx-1.9.15 --with-http_ssl_module --with-http_v2_module --with-openssl=/opt/openssl-1.0.2h
make -j4
make install -j4
2.生成ssl证书(也可以用收费的),建议使用V3版本
参考文章
http://www.wdlth.com/335/migrating-ssl-certificate-from-sha1-to-sha256/
#生成证书,第一步生成的时候要输入密码,自己记住即可,后续步骤,包括重启都要使用。
#生成秘钥对,有私钥、公钥、密码
openssl genrsa -des3 -out server.key 2048
#根据秘钥对生成无密码秘钥对,和server.key是同一个东西,只是有无密码的区别
openssl rsa -in server.key -out server_nopwd.key
#根据秘钥对生成签名请求(启动需要输入密码),有组织信息、salt密码
openssl req -new -key server.key -sha256 -out server.csr
#生成的根证书(生成根证书的时候,也可以使用server.key,但是需要输入密码)
openssl x509 -req -in server.csr -signkey server_nopwd.key -out server.crt -days 365
同时拷贝证书到 conf/ssl目录下
配置文件,新增一个server节点,端口443
server {
listen 443 ssl default_server;
server_name localhost;
ssl_certificate ssl/server.crt; #公钥,根证书
ssl_certificate_key ssl/server.key; #秘钥对
#ssl_session_timeout 5m;
location = /_.gif {
empty_gif;
}
location / {
root html;
index index.html index.htm;
}
}
3.配置http2
就是在listen后面多了个http2,非常简单
server {
listen 443 http2 ssl default_server;
server_name localhost;
ssl_certificate ssl/server.crt;
ssl_certificate_key ssl/server.key;
#ssl_session_timeout 5m;
location = /_.gif {
empty_gif;
}
location / {
root html;
index index.html index.htm;
}
}
至此完成安装。如何调试,请查看另外一篇文章。
参考文章
http2.0协议文档
http://www.oschina.net/question/1397765_172789
http/2.0介绍
http://baike.baidu.com/link?url=rKP8zl9hDDkgN9rAN0tGknE3Gq40tAHX7QbMeAN4P5BYaE-K7slaAWw9paV-aYC8oo_9xhnqlVxlcyTr5_mEW_
nginx官方网站
http://nginx.org/
nginx安装证书
http://www.cnblogs.com/tintin1926/archive/2012/07/12/2587311.html
nginx1.9.5配置http2
http://tech.huanqiu.com/news/2015-09/7670017.html
优势参考文章 http://www.tuicool.com/articles/aqyMve
[color=red]注意,前方有大坑!!!!!!!!!!!!!!!![/color]
1)本实验中,不要使用 "nginx -s reload" 命令,重启不生效。而是要使用"nginx -s stop"之后再启动"nginx",配置文件才会生效。
2)官方明确说明openssl必须是1.0.2(1.1.0编译不过去,1.0.0中http2不生效),参考文章:http://nginx.org/en/docs/http/ngx_http_v2_module.html
3)nginx必须是1.9.5之后,1.11.x页可以
1.安装nginx(ssl、http2模块)
nginx1.9.5开始正式支持http2,目前最新的版本是1.9.15。
centos安装依赖
yum -y install make gcc zlib zlib-devel openssl openssl-devel pcre pcre-devel
ubuntu安装依赖
apt-get install openssl libssl-dev gcc++ zlib1g-dev libpcre3-dev
其中openssl模块也可以自定义安装(),--with-openssl=/opt/openssl-1.0.2h可以自定义制定openssl的安装位置。我们采用系统的openssl。
官方要求1.0.2版本以上,通过openssl version可以查看
解压以后(configure的几个参数是关键,支持http2和ssl),还是三步走:configure,make,make install
./configure --prefix=/opt/nginx/nginx-1.9.15 --with-http_ssl_module --with-http_v2_module --with-openssl=/opt/openssl-1.0.2h
make -j4
make install -j4
2.生成ssl证书(也可以用收费的),建议使用V3版本
参考文章
http://www.wdlth.com/335/migrating-ssl-certificate-from-sha1-to-sha256/
#生成证书,第一步生成的时候要输入密码,自己记住即可,后续步骤,包括重启都要使用。
#生成秘钥对,有私钥、公钥、密码
openssl genrsa -des3 -out server.key 2048
#根据秘钥对生成无密码秘钥对,和server.key是同一个东西,只是有无密码的区别
openssl rsa -in server.key -out server_nopwd.key
#根据秘钥对生成签名请求(启动需要输入密码),有组织信息、salt密码
openssl req -new -key server.key -sha256 -out server.csr
#生成的根证书(生成根证书的时候,也可以使用server.key,但是需要输入密码)
openssl x509 -req -in server.csr -signkey server_nopwd.key -out server.crt -days 365
同时拷贝证书到 conf/ssl目录下
配置文件,新增一个server节点,端口443
server {
listen 443 ssl default_server;
server_name localhost;
ssl_certificate ssl/server.crt; #公钥,根证书
ssl_certificate_key ssl/server.key; #秘钥对
#ssl_session_timeout 5m;
location = /_.gif {
empty_gif;
}
location / {
root html;
index index.html index.htm;
}
}
3.配置http2
就是在listen后面多了个http2,非常简单
server {
listen 443 http2 ssl default_server;
server_name localhost;
ssl_certificate ssl/server.crt;
ssl_certificate_key ssl/server.key;
#ssl_session_timeout 5m;
location = /_.gif {
empty_gif;
}
location / {
root html;
index index.html index.htm;
}
}
至此完成安装。如何调试,请查看另外一篇文章。
参考文章
http2.0协议文档
http://www.oschina.net/question/1397765_172789
http/2.0介绍
http://baike.baidu.com/link?url=rKP8zl9hDDkgN9rAN0tGknE3Gq40tAHX7QbMeAN4P5BYaE-K7slaAWw9paV-aYC8oo_9xhnqlVxlcyTr5_mEW_
nginx官方网站
http://nginx.org/
nginx安装证书
http://www.cnblogs.com/tintin1926/archive/2012/07/12/2587311.html
nginx1.9.5配置http2
http://tech.huanqiu.com/news/2015-09/7670017.html