loading
目前主流浏览器基本都支持加密的 HTTP2 了,所以 HTTP2 基本都是基于 HTTPS 协议的,所以需要升级 HTTP2,首先需要 HTTP 升级成 HTTPS,升级 HTTPS 需要 SSL 证书,阿里云可以免费申请
1.Nginx 版本编译时需要 http_v2_module 和 http_ssl_module 模块
2.openSSL 版本大于等于 1.02
注:以下操作以 ubuntu 操作系统为例
apt-get 方式安装:
sudo su root
apt-get install nginx
nginx -V
service nginx start
/usr/sbin/nginx 主程序
/etc/nginx 存放配置文件
/usr/share/nginx 存放静态文件
/var/log/nginx 存放日记
安装包方式安装:
apt-get install gcc
apt-get install libpcre3 libpcre3-dev
apt-get install zlib1g zlib1g-dev
# Ubuntu14.04的仓库中没有发现openssl-dev,由下面openssl和libssl-dev替代
#apt-get install openssl openssl-dev
sudo apt-get install openssl
sudo apt-get install libssl-dev
cd /usr/local
mkdir nginx
cd nginx
wget http://nginx.org/download/nginx-1.13.7.tar.gz
tar -xvf nginx-1.14.1.tar.gz
# 进入nginx目录
/usr/local/nginx/nginx-1.13.7
# 执行命令
./configure
# 执行make命令
make
# 执行make install命令
make install
#进入nginx启动目录
cd /usr/local/nginx/sbin
# 启动nginx
./nginx
apt-get --purge autoremove nginx
server{
# ssl写在443端口后面。这样http和https的链接都可以用
listen 443 ssl http2 default_server;
server_name jsbyron.cn;
ssl_certificate 私钥存放路径.pem;
ssl_certificate_key 公钥存放路径.key;
# 设置会话缓存过期时间1h
ssl_session_timeout 60m;
# 指定TLS协议的版本,不安全的SSL2和SSL3要废弃掉
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# 启用ssl_prefer_server_ciphers,用来告诉Nginx在TLS握手时启用服务器算法优先,由服务器选择适配算法而不是客户端
ssl_prefer_server_ciphers on;
# 优先选择支持前向加密的算法,且按照性能的优先顺序排列
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
# 配置会话票证,减少了TLS握手的开销
ssl_session_tickets on;
}
配置完后重启 nginx
nginx -s reload
nginx: [emerg] the "http2" parameter requires ngx_http_v2_module in /usr/local/nginx/conf/nginx.conf:28
解决方法
1.卸载重新安装最新 nginx 2.进入目录 nginx 对相关配置进行重新编译
./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_addition_module --with-http_flv_module --with-http_gzip_static_module --with-http_realip_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_dav_module --with-http_v2_module