热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

构建quic_server

文档说明:只记录关键地方;试验环境:linuxdebian11目标:构建能测试的quicserver下载chromium并且安装好依赖以后,执行脚本#!binbashset-exu

文档说明:只记录关键地方;

试验环境: 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. 定制自己的chromium浏览器,linux版

  4. 快速下载chromium源码



推荐阅读
  • 技术日志:Ansible的安装及模块管理详解 ... [详细]
  • 本文详细介绍了如何在ARM架构的目标设备上部署SSH服务端,包括必要的软件包下载、交叉编译过程以及最终的服务配置与测试。适合嵌入式开发人员和系统集成工程师参考。 ... [详细]
  • 尽管Medium是一个优秀的发布平台,但在其之外拥有自己的博客仍然非常重要。这不仅提供了另一个与读者互动的渠道,还能确保您的内容安全。本文将介绍如何使用Bash脚本将Medium文章迁移到个人博客。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 当我们忘记了Debian系统的登录密码而无法进入系统时,可以通过以下方法进行密码重置。在GRUB2引导界面中选择Debian启动项,按下“e”键进入编辑模式。接着找到以“linux”或“linux16”开头的行,在该行末尾添加“init=/bin/bash”参数。保存并继续启动,系统将进入单用户模式,此时可以使用`passwd`命令来重置root用户的密码。完成后重启系统即可正常登录。 ... [详细]
  • Parallels Desktop for Mac 是一款功能强大的虚拟化软件,能够在不重启的情况下实现在同一台电脑上无缝切换和使用 Windows 和 macOS 系统中的各种应用程序。该软件不仅提供了高效稳定的性能,还支持多种高级功能,如拖放文件、共享剪贴板等,极大地提升了用户的生产力和使用体验。 ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
  • 如何将PHP文件上传至服务器及正确配置服务器地址 ... [详细]
  • RancherOS 是由 Rancher Labs 开发的一款专为 Docker 设计的轻量级 Linux 发行版,提供了一个全面的 Docker 运行环境。其引导镜像仅 20MB,非常适合在资源受限的环境中部署。本文将详细介绍如何在 ESXi 虚拟化平台上安装和配置 RancherOS,帮助用户快速搭建高效、稳定的容器化应用环境。 ... [详细]
  • 通过设置Linux中的cd命令别名,用户能够更加高效地在复杂的目录结构中进行工作目录的切换。本文介绍了几种实用的方法,帮助减少重复输入路径的工作量。 ... [详细]
  • 每种编程语言都有其独特的完成任务的方式,这也说明了为什么有这么多语言可供选择。在JimHall的《不同的编程语言如何完成相同的事情》文章中,他演示了13种不同的语言如何使用不同的语 ... [详细]
  • 本文介绍了如何在Linux系统中将命令添加到PATH环境变量中,以便在任何位置都能直接运行这些命令。PATH是一个包含多个目录路径的字符串变量,当输入不带路径的命令时,系统会在这些路径中查找并执行相应的命令。 ... [详细]
  • 本文详细介绍了如何使用Layui框架实现动态和静态数据表的分页功能,具有较高的实用性和参考价值。适合需要开发管理后台的开发人员参考。 ... [详细]
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
  • 基于Linux开源VOIP系统LinPhone[四]
    ****************************************************************************************** ... [详细]
author-avatar
truelee的一些事一些情
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有