构建quic_server,让现有的服务支持quic协议(HTTP3)

文档说明:只记录关键地方;
试验环境: linux debian 11
目标:构建能测试的quic server

下载chromium 并且安装好依赖以后,执行构建quic_server脚本

#!/bin/bash
set -exu
__CURRENT__=`pwd`
__DIR__=$(cd "$(dirname "$0")";pwd)
cd ${__DIR__}
cd ${__DIR__}/chromium/chromium/src/
test -d out/Default && rm -rf out/Default
gn gen out/Default --args='is_debug=false symbol_level=0 enable_nacl=false blink_symbol_level=0 is_component_build=false use_debug_fission=false is_clang=false'
ninja -j $(nproc) -C out/Default quic_server quic_client
ldd out/Default/quic_server

nginx 配置文件中添加如下参数,为了使用http3 quic协议

(由http2 over tcp 跳转到http3 over udp )

set $alt_svc 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"';
add_header "Alt-Svc" $alt_svc; # Advertise that HTTP/3 is available

使用quic_server

让现有的服务支持quic 协议,简单配置如下
去这里验证 https://http3check.net/ http3 是否启用

cd out/Default/quic_server
des=/quic_workspace
cp libnet.so $des
cp libbase.so $des
cp libboringssl.so $des
cp libabsl.so $des
cp liburl.so $des
cp libc++.so $des
cp libprotobuf_lite.so $des
cp libperfetto.so $des
cp libcrcrypto.so $des
cp libchrome_zlib.so $des
cp libbase_i18n.so $des
cp libicui18n.so $des
cp libicuuc.so $des
cp quic_server $des
openssl pkcs8 \
-topk8 \
-outform DER \
-inform PEM \
-in /tls/wildcard.xiaoshuogeng.fullchain.pem \
-out /tls/wildcard.xiaoshuogeng.pkcs8 \
-nocrypt
/quic_workspace/quic_server
--quic_response_cache_dir=/data
--certificate_file=/tls/wildcard.xiaoshuogeng.fullchain.pem
--key_file=/tls/wildcard.xiaoshuogeng.pkcs8
--enable_webtransport=true
--generate_dynamic_responses=true
--port=443
--quic_mode=proxy
--quic_proxy_backend_url=https://http-proxy.xiaoshuogeng.com
--host=0.0.0.0
--v=1

参考文档

  1. QUIC, a multiplexed transport over UDP
  2. quic generate-certs
  3. quic 使用
  4. http3验证
  5. 定制自己的chromium浏览器,linux版
  6. 快速下载chromium源码
  7. nginx 配置 http3 (quic 协议基于UDP)
posted @   jingjingxyk  阅读(372)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示