美文网首页
nginx配置Http2.0

nginx配置Http2.0

作者: Godtoy | 来源:发表于2017-05-23 15:28 被阅读0次

    最近关注http2.0,然后想在在网站配置http2.0
    如下是配置和遇到的问题

    使用server是基于nginx得tengine

    配置很简单,但是如果直接如下操作

    server {
        listen 443 ssl http2;
    

    这样会提示nginx得http_v2_module没有安装,需要重新编译安装http2.0

    那么接下来我找到源码包重新编译

    [root@oeynet tengine-2.2.0]# make clean
    make: *** No rule to make target `clean'.  Stop.
    [root@oeynet tengine-2.2.0]# ./configure --prefix=/server/programs/tengine2.2 --with-http_v2_module
    

    重新编译后运行,nginx运行成功,但是google得http检测插件并没有亮,也就是说明http2没有生效。

    在nginx官方有一篇文章链接
    也就是说Chrome 在放弃了对 NPN 的支持,如果继续在 Chrome 上支持 HTTP/2 ,则需要安装最新 1.0.2 版的 OpenSSL,并且用 1.0.2 的 OpenSSL 重新编译 Nginx。

    最后下载openssl库重新编译
    https://www.openssl.org/source/

    [root@oeynet downloads]# wget https://www.openssl.org/source/openssl-1.1.0e.tar.gz
    [root@oeynet downloads]# tar -zxf openssl-1.1.0e.tar.gz 
    [root@oeynet downloads]# ls
    openssl-1.1.0e         php-5.6.30     tengine-2.2.0
    openssl-1.1.0e.tar.gz  php5.6.tar.gz  tengine-2.2.0.tar.gz
    [root@oeynet downloads]# cd tengine-2.2.0
    [root@oeynet tengine-2.2.0]# make clean
    rm -rf Makefile objs
    [root@oeynet tengine-2.2.0]# ./configure --prefix=/server/programs/tengine2.2 --with-http_v2_module --with-openssl=/server/downloads/openssl-1.1.0e
    [root@oeynet tengine-2.2.0]# make && make install
    在编译过程中出错,所以我降低了openssl版本到
    https://www.openssl.org/source/openssl-1.0.2f.tar.gz
    
    //注意这里的shared和zlib是必须的,否则编译nginx会报错
    
    ./config shared zlib
    make && make install
    mv /usr/bin/openssl /usr/bin/openssl.old
    mv /usr/include/openssl /usr/include/openssl.old
    ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
    ln -s /usr/local/ssl/include/openssl /usr/include/openssl
    echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
    //检查版本
    openssl version 
    [root@oeynet openssl-1.0.2j]# openssl version
    OpenSSL 1.0.2j  26 Sep 2016
    [root@oeynet openssl-1.0.2j]# 
    
    make clean 
    [root@oeynet tengine-2.2.0]# ./configure --prefix=/server/programs/tengine2.2 --with-http_v2_module --with-openssl=/server/download/openssl-1.0.2f
    编译安装通过
    

    重启nginx http2协议应用成功

    nginx -s reload
    

    相关文章

      网友评论

          本文标题:nginx配置Http2.0

          本文链接:https://www.haomeiwen.com/subject/pyawxxtx.html