什么都分享
以及,记录自己的故事

Nginx启用http2协议无效的解决办法

给本博客上http2的时候,遇到了一些问题,无论在nginx的配置文件中server段怎么加http2,怎么重启都没效果,chrome和curl都是http1.1。http2的模组也加了。

然后去翻http2和nginx的文档,原来是openssl需要1.0.2版本以上才可以正常使用

知道原因就好办了:

1:nginx -V命令记录下编译时候的扩展模组有哪些,例如--user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module,复制下来。

2:wget下载官方网站的openssl,我用的是1.1.0e,tar xzvf后记下路径。

3:--with-openssl=/root/softbak/openssl-1.1.0e加入到复制下来的扩展模组命令后面,这里的/root/softbak/openssl1.1.0e是我的openssl所在路径。

4:回到nginx的编译路径,./configure再编译一次,比如 ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module --with-http_v2_module

5:编译完成后记得make,但不要make install,否则会全部重新安装nginx了。

6:备份原来的nginx二进制文件,cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

7:停止nginx服务,systemctl stop nginx

8:复制新编译的nginx二进制文件到nginx安装路径并覆盖cp objs/nginx /usr/local/nginx/sbin/nginx

9:启动nginx服务,systemctl start nginx

10:配置nginx的conf啦,在server端中的listen 443 后面加入ssl http2,重启nignx服务即可。

赞(0) 打赏
本文遵守创作共享 BY-NC-ND 4.0协议,转载前请先联系作者。绯末博客 » Nginx启用http2协议无效的解决办法
分享到: 更多 (0)

评论 3

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #2

    过来瞧瞧

    匿名1年前 (2017-04-29)回复
  2. #1

    请问这个博客背景中跟随鼠标指针出现的效果叫什么?感觉很有趣~

    匿名1年前 (2017-04-20)回复

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏