开发者社区 问答 正文

在 Apache 上部署 HTTP/2

[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

展开
收起
妙正灰 2015-10-28 13:18:32 10237 分享 版权
3 条回答
写回答
取消 提交回答
  • 一个程序员,欢迎骚扰!!!
    我以为这样就完了 原来二楼还有 虽然怎么用  apche
    2015-10-28 17:22:54
    赞同 展开评论
  • 论坛总版主
    很不错的教程
    2015-10-28 13:34:34
    赞同 展开评论
  • 解决方案工程师,负责为企业规划上云迁移方案和云上架构设计,在网站建设开发和云计算领域有多年经验,专注于Linux平台的系统维护以及应用部署。致力于以场景化的方式让云计算,用更加通俗易懂的方式让更多人体验云计算,让云端的计算更质朴的落地。
    编译


    在你原来的编译参数中加入:--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

    2015-10-28 13:18:46
    赞同 展开评论