马可家的菠萝 2024-12-28 11:18 采纳率: 0%
浏览 46
已结题

pc端访问网站不支持http2协议

pc端访问网站不支持http2协议

前端vite+vue3+ts+axions
后端nodejs+express
部署到服务器上后使用nginx代理,开了https和http2,但是访问网站时,手机上的浏览器访问时可以看到是http2,但是电脑上却是http1,通过http2的一些验证网站是可以确定服务器是支持了http2,我电脑上访问其他的网站也有http2,可以排除是浏览器的原因

img

img

  • 写回答

33条回答 默认 最新

  • 阿里嘎多学长 2024-12-28 11:36
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    问题解答

    问题描述:pc端访问网站不支持http2协议,使用vite+vue3+ts+axios前端,nodejs+express后端,部署到服务器上使用nginx代理,开启https和http2,但是手机上的浏览器访问网站时不支持http2协议。

    解决方案

    1. 检查nginx配置文件,确保http2协议被正确启用。可以在nginx配置文件中添加以下配置:
    http {
        ...
        http2_max_field_size 1048576;
        http2_max_header_size 1048576;
        ...
    }
    
    1. 检查浏览器支持http2协议。可以使用以下命令检查浏览器支持http2:
    curl -I -H "Upgrade: h2c" -H "Connection: h2c" https://example.com
    

    如果浏览器支持http2,会返回一个200状态码。如果不支持,会返回一个503状态码。

    1. 检查服务器支持http2协议。可以使用以下命令检查服务器支持http2:
    curl -I -H "Upgrade: h2c" -H "Connection: h2c" https://example.com
    

    如果服务器支持http2,会返回一个200状态码。如果不支持,会返回一个503状态码。

    1. 如果以上步骤都检查通过,但是仍然无法访问http2协议,可以尝试使用以下命令来强制浏览器使用http2协议:
    curl -I -H "Upgrade: h2c" -H "Connection: h2c" -H "Alt-Svc: h2://example.com" https://example.com
    

    如果以上步骤都无法解决问题,可以提供更多的日志信息和配置文件,以便更好地 debug。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月2日
  • 创建了问题 12月28日