LNMP配置HTTP/2协议教程

作者:技术拾光

时间:2026-07-31

浏览:213

LNMP环境启用HTTP/2:Nginx版本需≥1.9.5且含http2模块,修改监听为listen443sslhttp2,配置SSL证书,重启后可用浏览器或curl验证。

文章目录

在LNMP(Linux, Nginx, MySQL, PHP)环境里,启用HTTP/2协议的关键在于Nginx的配置。以下步骤将详细说明如何操作,避免踩坑。

LNMP配置HTTP/2协议教程

1. 确认Nginx版本够不够格

HTTP/2要求Nginx版本至少为1.9.5,且编译时需包含http2模块。执行以下命令确认:

nginx -V 2>&1 | grep http2

如果输出包含--with-http_v2_module,则说明Nginx已支持。若未出现,需升级或重新编译Nginx。

2. 修改Nginx配置,让HTTP/2上场

找到Nginx主配置文件(通常位于/etc/nginx/nginx.conf或/etc/nginx/sites-available/default),将监听端口修改为:

server {
    listen 443 ssl http2;
    server_name example.com;

    ssl_certificate /path/to/your/fullchain.pem;
    ssl_certificate_key /path/to/your/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    root /var/www/html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ .php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 根据PHP版本调整
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

关键行listen 443 ssl http2;添加了http2参数,表示在443端口启用HTTPS和HTTP/2协议。其他SSL及PHP解析配置按常规处理。

3. 必须配好SSL证书,这是前提

HTTP/2强制要求HTTPS,因此需配置SSL证书。若无证书,可使用Let's Encrypt免费获取,通过Certbot自动完成:

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com

按提示操作,Certbot将自动申请证书并修改Nginx配置。

4. 重启Nginx,让配置生效

配置修改后,重启Nginx服务:

sudo systemctl restart nginx

若无报错,则配置基本正确。若出现错误,需检查配置文件路径、证书文件是否存在及端口占用情况。

5. 验证一下,HTTP/2真的跑起来了吗?

可通过以下两种方式验证:

浏览器开发者工具
打开网站,按F12进入开发者工具,切换到“网络”标签。刷新页面,点击任意请求,查看响应头。若出现HTTP/2或h2,则说明成功。

命令行用curl
执行以下命令:

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

若返回第一行为HTTP/2 200,则配置正确。

按照以上步骤,在LNMP环境下启用HTTP/2并不复杂。关键在于确认Nginx版本、正确配置http2参数以及完成SSL证书配置。启用后,网站加载速度将有明显提升。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章