资讯专栏INFORMATION COLUMN

【nginx运维基础(8)】配置支持http2协议

IamDLY / 1272人阅读

摘要:了解协议的主要目标是改进传输性能,实现低延迟和高吞吐量。从另一方面看,的高层协议语义并不会因为这次版本升级而受影响。所有首部值,以及它们的使用场景都不会变。不用为了利用的好处而修改标记。服务器必须运行协议,但大部分用户都不会因此而受到影响。

了解http2协议

HTTP 2.0 的主要目标是改进传输性能,实现低延迟和高吞吐量。从另一方面看,HTTP 的高层协议语义并不会因为这次版本升级而受影响。 所有HTTP 首部、值,以及它们的使用场景都不会变

现有的任何网站和应用,无需做任何修改都可以在HTTP 2.0 上跑起来。不用为了利用HTTP 2.0 的好处而修改标记。HTTP 服务器必须运行HTTP 2.0 协议,但大部分用户都不会因此而受到影响

编译nginx的http2模块

通过 `/usr/local/nginx/sbin/nginx -V
` (注意是大写的V),查看当前nginx是否支持http2:--with-http_v2_module

nginx version: nginx/1.14.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) 
built with OpenSSL 1.0.2o  27 Mar 2018
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_sub_module --with-stream --with-stream_ssl_module --with-openssl=/usr/local/src/lnmp1.5/src/openssl-1.0.2o

如果没有的话在编译nginx时要加上这一行

./configure 
--user=www 
--group=www 
--with-http_v2_module 
--with-http_ssl_module 
--with-stream 
--with-openssl=./openssl-OpenSSL_1_1_0e 
--with-pcre=./pcre-8.40 --with-pcre-jit 
--with-zlib=./zlib-1.2.11
make && make install
生成证书

可以参考我上一篇博文,申请免费证书。也可以手动生成一个伪证书

cd /usr/local/nginx/conf/
mkdir key && cd key
openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr
 (根据提示随意的输入)
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

最终生成

[root@zhouzhou_01 key]# ll
总用量 8
-rw-r--r-- 1 root samba   0 6月  14 10:41 server.crt
-rw-r--r-- 1 root samba 749 6月  14 10:41 server.csr
-rw-r--r-- 1 root samba 963 6月  14 10:39 server.key
配置nginx

主要配置段如下

server {
    listen 80;
    server_name site.com www.site.com;
    add_header Strict-Transport-Security max-age=31536000;
    return 301 https://www.site.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name  www.site.com;
    root   /var/www/html/site;
    index  index.php index.html index.htm;
    
    access_log  /var/log/dnmp/nginx.site.access.log  main;
    error_log  /var/log/dnmp/nginx.site.error.log  warn;

    ssl on;
    ssl_certificate /etc/nginx/conf.d/certs/site/www.site.com.crt;
    ssl_certificate_key /etc/nginx/conf.d/certs/site/www.site.com.key;
    ssl_prefer_server_ciphers on;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4";
    add_header Strict-Transport-Security max-age=31536000;
}
验证

使用Chrome访问启用http2的站点。

新开TAB页,在地址栏中输入chrome://net-internals/#http2,检查HTTP/2 sessions下的表格。

确认表格里是否出现了上一步访问的主机地址。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/40477.html

相关文章

  • HTTP2即未来

    现在浏览器里面很大一部分网页还在使用HTTP1.1作为主要的网络通信协议。 但,这傻逼协议是1999年弄出来的. 距今已经有xx年了, 这些年里,美国的IETF 觉得这样不行.我得出来拯救世界了, 在Chrome的倡导下, 借用Chrome的SPDY 来做为HTTP2的前身,即, HTTP2 是SPDY/3 draft的优优化版. 那,HTTP2 为什么要出现,又解决了HTTP1.1不能解决的什...

    BetaRabbit 评论0 收藏0
  • HTTP/2 技术调研和性能分析

    摘要:消息与逻辑请求或响应消息对应的完整的一系列帧。声明数据流依赖关系指出,应尽可能先向父数据流分配资源,然后再向其依赖项分配资源。数据流应先于和获得完整资源分配和应先于和获得相同的资源分配和应基于其权重获得比例分配。 转载自 | 小米运维(公众号 ID:MI-SRE)showImg(https://segmentfault.com/img/bVbbesG?w=344&h=344); HTT...

    hlcfan 评论0 收藏0
  • Nginx源码分析】Nginxhttp2浅析

    摘要:主要涉及到的协议以及的处理流程。并且中必须建立在协议之上。所以对协议的服务发起请求时,一般浏览器会建立条连接,并行的去请求不同的资源。表明该字段是否使用了编码。 运营研发 张仕华 本文通过一个小例子串一遍nginx处理http2的流程。主要涉及到http2的协议以及nginx的处理流程。 http2简介 http2比较http1.1主要有如下五个方面的不同: 二进制协议 http1....

    孙吉亮 评论0 收藏0

发表评论

0条评论

IamDLY

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<