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

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


#!/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

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.domain.fullchain.pem \
  -out /tls/wildcard.domain.pkcs8 \
  -nocrypt


/quic_workspace/quic_server
--quic_response_cache_dir=/data
--certificate_file=/tls/wildcard.domain.fullchain.pem
--key_file=/tls/wildcard.domain.pkcs8
--enable_webtransport=true
--generate_dynamic_responses=true
--port=443
--quic_mode=proxy
--quic_proxy_backend_url=https://you-domain
--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源码

原文地址:http://www.cnblogs.com/jingjingxyk/p/16826996.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性