nginx如何启用对HTTP2的支持 | nginx如何验证HTTP2是否已启用

来源:互联网 发布:java volatile 原子类 编辑:程序博客网 时间:2024/05/19 00:41
本文标签:   Nginx HTTP2 nginx启用HTTP2支持 nginx验证HTTP2 启用http2支持   服务器

nginx启用HTTP2特性

查看当前nginx的编译选项

1#./nginx -V2 3nginx version: nginx/1.9.154built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)5built with OpenSSL 1.0.2g  1 Mar 20166TLS SNI support enabled7configure arguments: --prefix=/home/jackie/software/nginx --with-openssl=/home/jackie/Downloads/nginx/openssl-1.0.2g --with-pcre=/home/jackie/Downloads/nginx/pcre-8.38 --with-zlib=/home/jackie/Downloads/nginx/zlib-1.2.8 --with-http_ssl_module --with-threads --with-debug

 

启用http2支持

  1. 修改编译选项
    configure的选项中加入--with-http_v2_module,由于HTTP2需要SSL的支持,因此如缺少--with-http_ssl_module选项,还需要加入--with-http_ssl_module。 如下:

     

    ./configure --prefix=/home/jackie/software/nginx \            --with-openssl=/home/jackie/Downloads/nginx/openssl-1.0.2g \            --with-pcre=/home/jackie/Downloads/nginx/pcre-8.38 \            --with-zlib=/home/jackie/Downloads/nginx/zlib-1.2.8 \            --with-http_ssl_module \            --with-threads \            --with-debug \            --with-http_v2_module
  2. 编译&升级
    make & make install
  3. 修改配置文件,启用HTTP2,如下:
    server {    listen       8443 ssl http2 default_server; # 增加 http2 default_server    server_name  192.168.0.107;    ...}
  4. 验证配置文件
    #./nginx -tnginx: the configuration file /home/jackie/software/nginx/conf/nginx.conf syntax is oknginx: configuration file /home/jackie/software/nginx/conf/nginx.conf test is successful
  5. 启动nginx
    #./nginx

验证HTTP2是否已启用

方法一

使用高版本如56.0.2924.87的Chrome,按照如下步骤操作

  1. 使用Chrome访问启用http2的站点,比如Jackie的环境为https://192.168.0.107:8443。
  2. 新开TAB页,在地址栏中输入chrome://net-internals/#http2,检查HTTP/2 sessions下的表格。
  3. 确认表格里是否出现了上一步访问的主机地址,比如192.168.0.107:8443。

方法二

使用curl命令,参考HTTP/2 with curl,执行如下命令,确认站点返回的协议是否为HTTP

curl --http2 -I 192.168.0.107:8443

如执行上述命令时遇到如下错误,说明系统当前安装的curl还不支持HTTP2协议。

curl https://192.168.0.107:8443/ --http2curl: (1) Unsupported protocol

可以执行如下命令,检查系统当前安装的curl支持的特性列表,确认是否包含HTTP2。

curl -Vcurl 7.47.0 (i686-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftpFeatures: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets

从前述输出信息可以了解到,当前安装的curl还不支持HTTP2。
这时可参考如何启用curl命令HTTP2支持重新编译curl,加入HTTP2的支持。

方法三

安装Chrome插件HTTP/2 and SPDY indicator,安装完毕后访问启用HTTP2的站点,如果地址栏出现蓝色的闪电,说明站点已启用HTTP2。
不过Jackie身在墙内,安装总是失败,所以没有验证该方法的有效性。

完整的配置文件

如下是完整的配置文件,删除了一些与HTTP2特性不相关的内容。

01worker_processes  1;02error_log  logs/error.log  debug;03 04events {05    worker_connections  1024;06}07 08http {09    include       mime.types;10    default_type  application/octet-stream;11    server_tokens off;12 13    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '14                      '$status $body_bytes_sent "$http_referer" '15                      '"$http_user_agent" "$http_x_forwarded_for"';16 17    access_log  logs/access.log  main;18 19    sendfile        on;20    tcp_nopush     on;21 22    keepalive_timeout  65;23    charset utf-8;24 25    server {26        listen 8080;27        server_name  192.168.0.107;28        if ($scheme ~ http) {29            return https://$server_name:8443$request_uri;30        }31    }32 33    server {34        listen       8443 ssl http2 default_server;35        server_name  192.168.0.107;36 37        ssl_certificate      /home/jackie/software/nginx_conf/server.crt;38        ssl_certificate_key  /home/jackie/software/nginx_conf/server.key;39 40        ssl_session_cache    shared:SSL:1m;41        ssl_session_timeout  5m;42 43        ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA';44        ssl_prefer_server_ciphers  on;45 46        add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload" always;47        add_header X-Frame-Options SAMEORIGIN always;48        add_header X-XSS-Protection "1; mode=block" always;49        add_header X-Content-Type-Options nosniff;50 51        location ~ / {52            index  index.jsp;53            proxy_pass http://127.0.0.1:18080;54            proxy_set_header        referer           '';55            include proxy.conf;56        }57 58        #error_page  404              /404.html;59 60        # redirect server error pages to the static page /50x.html61        #62        error_page   500 502 503 504  /50x.html;63        location = /50x.html {64            root   html;65        }66 67        location ~ /\. {68            deny all;69            access_log off;70            log_not_found off;71        }72    }73 74}

写在最后:FOR Freedom 看看外边的世界,以及IT这一行,少不了去Google查资料,最后,安利一个国外网络加速器。一枝红杏加速器,去Google查资料是绝对首选,连接速度快,使用也方便。我买的是99¥一年的,通过这个链接(http://my.yizhihongxing.com/aff.php?aff=2509)注册后输上会员中心得优惠码,平摊下来,每月才7块钱,特实惠。

本文标签:   Nginx HTTP2 nginx启用HTTP2支持 nginx验证HTTP2 启用http2支持   服务器

转自 SUN'S BLOG - 专注互联网知识,分享互联网精神!

原文地址: nginx如何启用对HTTP2的支持 | nginx如何验证HTTP2是否已启用

相关阅读:我是 G 粉,一直关注 Google,最近 Google 有一些小动作,可能很多人不太了解

相关阅读:机器学习引领认知领域的技术创新,那么SaaS行业会被机器学习如何改变?

相关阅读:VPS 教程系列:Dnsmasq + DNSCrypt + SNI Proxy 顺畅访问 Google 配置教程

相关阅读: 对程序员有用:2017最新能上Google的hosts文件下载及总结网友遇到的各种hosts问题解决方法及配置详解

相关阅读: 《win10永久激活教程以及如何查看windows系统是不是永久激活?》

相关BLOG:SUN’S BLOG - 专注互联网知识,分享互联网精神!去看看:www.whosmall.com

原文地址:http://whosmall.com/?post=238

0 0
原创粉丝点击