在 Apache 上部署 HTTP/2-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

在 Apache 上部署 HTTP/2

妙正灰 2015-10-28 13:18:32 9166
[attachment=87368]

前言
nginx在这里: [font=微软雅黑, 'Microsoft Yahei', 'Hiragino Sans GB', tahoma, arial, 宋体]在 Nginx 上部署 HTTP/2

Apache Httpd 终于也推出对 HTTP/2 的支持了,在 2.4.17 包括之后的版本中我们都可以使用 HTTP/2 这一先进的 mod 了,因为是默认就可以被编译的,所以 在 Apache 上折腾 HTTP/2 真是比折腾 spdy 要方便太多。

内容

*) mod_http2: added donated HTTP/2 implementation via core module. Similar configuration options to mod_ssl. [Stefan Eissing]

这是 Apache Httpd 2.4.17 的 CHANGES 的介绍。
注:Apache Httpd 对 HTTP/2 的支持还需要版本大于 1.0.2 的 openssl 和 libnghttp2 库的支持。
注:如果 Centos 的软件库中没有 libnghttp2 库,那么需要安装 epel 源。

安装h2



软件源


这是一个很重要的 mod 所以那些最新的 linux 发行版的软件 package 中的 apache httpd 都是默认编译好了 h2 模块的。
  • Arch Linux 最新版本已经上了 2.4.17
  • Fedora Rawhide 也上了 2.4.17,未来的 Fedora 23 正式版肯定也是会上 2.4.17 的
  • Ubuntu 系统可以使用 ppa:ondrej/apache2 源,也可以安装 2.4.17



来自:https://www.vobe.io/390
Ubuntu 应用服务中间件 Linux Apache nginx
分享到
取消 提交回答
全部回答(3)
  • 小柒2012
    2015-10-28 17:22:54
    我以为这样就完了 原来二楼还有 虽然怎么用  apche
    0 0
  • 梦丫头
    2015-10-28 13:34:34
    很不错的教程
    0 0
  • 妙正灰
    2015-10-28 13:18:46
    编译


    在你原来的编译参数中加入:--enable-http2 ,这里解释一下编译参数:(请原谅我的英语不好)
    --enable-http2
    让 Apache Httpd 可以实现 HTTP/2 协议
    --with-nghttp2=<dir>
    自定义你 libnghttp2 的安装目录

    Windows


    目前 XAMPP 的最新安装包默认就是 2.4.17 ,且有 http2 mod。 upupw 暂时还没有。

    设置



    软件源


    通过软件源安装的用户,需要在 /etc/apache2/mods-enabled 或者 /etc/httpd/mod-enabled 中创建一个 http2.load ,里面加入LoadModule http2_module /usr/lib/apache2/modules/mod_http2.so
    然后保存,重启 服务。

    编译/windows


    httpd.conf 中,找到#LoadModule http2_module /usr/lib/apache2/modules/mod_http2.so
    将前面的 # 取消,如果没有这句话,就直接添加去掉 # 后的语句。
    然后保存,重启服务。

    开启 h2


    编辑对应的 vhost 文件,找到 443 端口的地方,加入:
    <VirtualHost x.x.x.x:443 >
    ProtocolsHonorOrder
    OnProtocols h2 h2c http/1.1
    ………………
    </VirtualHost>



    其实 80 端口也可以加入 Protocols h2c http/1.1 ,但是暂时没有浏览器加入对 80 端口的 http/2 支持。
    还是那句话,不要忘记重启。

    查看


    chrome 浏览器可以在 chrome://net-internals/#http2 中查看,使用 http/2 的网站,看看有没有你添加的。
    也可以通过 curl 来查看:curl -v --http2 http://<yourserver>/

    -------------------------

    回 2楼(梦丫头) 的帖子
    多谢梦姑赏识~~

    -------------------------

    回 4楼(小柒2012) 的帖子
    虽然怎么用  apche

    0 0
添加回答
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题