温馨提示×

ubuntu apache2支持http2吗

小樊
37
2026-10-02 06:19:42
栏目: 智能运维

是的,Ubuntu 上的 Apache2 是支持 HTTP/2 的,但需要满足一些条件和进行相应配置。


一、支持条件

  1. Apache 版本

    • Apache 2.4.17 及以上 才开始支持 HTTP/2
    • Ubuntu 16.04 及以后版本默认自带的 Apache2 一般都满足
  2. 必须使用 HTTPS

    • Apache 的 mod_http2 只支持通过 TLS(HTTPS)使用 HTTP/2
    • 纯 HTTP(80 端口)无法启用 HTTP/2
  3. 需要的模块

    • mod_http2
    • mod_ssl

二、启用 HTTP/2 的步骤(Ubuntu)

1. 安装 Apache(若未安装)

sudo apt update
sudo apt install apache2

2. 启用必要模块

sudo a2enmod http2
sudo a2enmod ssl

3. 配置虚拟主机(HTTPS)

编辑你的站点配置,例如:

sudo nano /etc/apache2/sites-available/example.conf

示例配置:

<VirtualHost *:443>
    ServerName example.com
    DocumentRoot /var/www/html

    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/example.crt
    SSLCertificateKeyFile /etc/ssl/private/example.key

    Protocols h2 http/1.1
</VirtualHost>

⚠️ 关键是这一行:

Protocols h2 http/1.1

4. 启用站点并重启 Apache

sudo a2ensite example.conf
sudo systemctl restart apache2

三、验证 HTTP/2 是否生效

方法 1:使用 curl

curl -I --http2 https://example.com

看到:

HTTP/2 200

说明已启用。

方法 2:浏览器

  • Chrome / Firefox 开发者工具 → Network → 查看协议列(Protocol: h2)

四、常见问题

  • ❌ HTTP/2 不生效?
    • 确认用的是 HTTPS
    • 确认 Protocols h2 写在 443 虚拟主机中
  • ❌ 老版本 Ubuntu(14.04)?
    • 默认 Apache 太旧,需要 PPA 或手动编译

如果你愿意,可以告诉我你的 Ubuntu 版本 和 Apache 版本,我可以给你更精确的操作步骤。

0 踩