简述

在使用Qt的MaintenanceTool程序进行在线更新的时候遇到一个问题,就是访问download.qt.io实在太慢了,老是失败。所以想使用国内的镜像站来进行更新。

使用Qt的镜像站方法也很简单,下载Update.xmlUpdate_orig.xml回来,然后修改里面的url即可,这个网上有很多教程。

但是这个方法不是很好用,还需要自己手动把一些元数据文件下载回来。

最近在研究traefik,所以就用它做了一个简单的代理转发,来达到加速的目的。

traefik 简介

Træfɪk 是一个为了让部署微服务更加便捷而诞生的现代HTTP反向代理、负载均衡工具。 它支持多种后台 (Docker, Swarm, Kubernetes, Marathon, Mesos, Consul, Etcd, Zookeeper, BoltDB, Rest API, file…) 来自动化、动态的应用它的配置文件设置。

关于traefik的介绍,网上资料不是很多,可以看它的官网和一个国内的网站

代理设置具体过程

1、下载traefik程序

这个可以去github上下载源码回来自己编,也可以直接下载编译好的文件。因为traefik是使用go语言编译的,所有的依赖都在一个程序里面,没有乱七八糟的依赖问题。

发布版本下载地址https://github.com/containous/traefik/releases

2、编写配置文件,添加前后端来配置代理。

我使用的是清华大学的镜像站,速度还比较快。地址:https://mirrors.tuna.tsinghua.edu.cn/qt/

写好配置文件之后,直接运行起来即可

./traefik --c config.toml

配置文件如何写,可以看官网上的文档。需要中文的也可以看这里http://docs.traefik.cn/basics

配置文件如下:

# 入口点
[entryPoints]
# HTTP 入口点,只需要HTTP的就够了
[entryPoints.http]
address = ":80" # 使用80端口,这样后面有用 # 管理界面监听端口
[web]
address = ":8012"
[web.statistics]
ReccentError = 10 # 配置文件监测(有改变的时候无需重启服务程序,会自动更新)
[file]
filename = "./config.toml"
watch = true
# 后端服务器定义
[backends]
# 定义后端,这里我直接使用的tuna的名称
[backends.tuna]
# 设置最大连接数,其实可以不设置
[backends.tuna.maxconn]
amount = 10
extractorfunc = "request.host"
# 后端的服务器,可以添加多个
[backends.tuna.servers.server1]
url = "https://mirrors-i.tuna.tsinghua.edu.cn" # 这里使用清华镜像站的URL
weight = 10 # 前端转发规则定义
[frontends]
# 定义一个前端,前端就是你访问treafik入口点的时候,用来确定如何转发的规则
[frontends.tuna]
# 这个前端转发到的后端
backend = "tuna"
passHostHeader = false # 这里不能为true,否则转发的时候会是一个不正常的重定向,导致服务器返回错误
# 路由规则,也可以有多个
[frontends.tuna.routes.test_1]
rule = "AddPrefix:/qt" # 添加前缀,也就是访问入口点的时候,给URL里面的路径添加前缀/qt再去访问后端
# 比如访问 http://127.0.0.1/online/qtsdkrepository/windows_x86/android/
# 那么就会转发到后端 https://mirrors-i.tuna.tsinghua.edu.cn/qt/online/qtsdkrepository/windows_x86/android/

3、修改hosts文件,把download.qt.io解析到`127.0.0.1。

4、做完上面几步,可以直接在浏览器访问download.qt.io,看看是否正常。

然后直接使用Qt安装目录下的MaintenanceTool程序进行升级更新即可。

注意,使用中科大的源,因为文件不全,可能出现下面的问题,北交大的源不能用,它里面是空的,就一个假的。使用清华的源没问题。

使用Træfɪk(traefik)来加速Qt在线更新的更多相关文章

  1. Træfɪk 服务发现解决方案

    Træfɪk is a modern HTTP reverse proxy and load balancer made to deploy microservices with ease. It s ...

  2. Qt 框架的图形性能高(OpenGL上的系统效率高),网络性能低,开发效率高,Quick是可以走硬件加速——Qt中分为好几套图形系统,差不多代表了2D描画的发展史。最经典的软描画系统

    -----图形性能部分-----Qt的widgets部分,运行时的图像渲染性能是一般的,因为大部分的界面内容都是Qt自绘,没有走硬件加速,也就是说很多图形内容都是CPU算出来的.但是widgets底层 ...

  3. 使用国内源解决Qt在线更新慢的问题

    Qt在线安装更新工具默认使用官方的源,国内访问比较慢,可以在setting中增加国内的源来提高更新速度,如下面的源: http://mirrors.ustc.edu.cn/qtproject/onli ...

  4. kubernetes 部署 traefik 以及kubernetes dashborad

    前言 本来打算通过 traefik 来实现 kubernetes dashborad 的服务访问,可是在配置过程中始终报错.最后无奈只能通过nodeport来实现kubernetes dashbora ...

  5. Qt 5简介

    Qt 5简介 Qt 5概要介绍 在Qt 5这个版本中,Qt Quick成为了Qt的核心.但是Qt 5也继续提供了本地C++强大的功能来完成更好的用户体验,也提供了对OpenGL/OpenGL ES图形 ...

  6. 【win】【qt5打包】【qt程序打包成一个可执行文件(带图标任何win都可以运行哦)】

    [前言] 业务需求将qt程序打包成win可执行文件.咱是做linux的,奈何用的麒麟系统,程序运行在win,好嘛,重新在win qtcreator编译后打包呗. [目标] 1.给qt程序添加一个图标. ...

  7. Golang优秀开源项目汇总, 10大流行Go语言开源项目, golang 开源项目全集(golang/go/wiki/Projects), GitHub上优秀的Go开源项目

    Golang优秀开源项目汇总(持续更新...)我把这个汇总放在github上了, 后面更新也会在github上更新. https://github.com/hackstoic/golang-open- ...

  8. Go热门开源项目大全

    监控系统 项目 简介 Star数 grafana/grafana Grafana 是一个用于监控指标分析和图表展示的工具, 后端支持 Graphite, InfluxDB & Promethe ...

  9. go语言熟知的开源项目

    go语言在国内是比较火的,并且好多公司都用go语言进行重构之前的系统,今天来看下基本大家都知道的go语言的开源项目 1.Docker Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用 ...

随机推荐

  1. day 55 jQuery-part2

    这里有一个DOM对象转换成jQuery对象的方法,在jQuery对象后面加上索引值0即可得到效果如图所示: $("#btn")[0] 这里我们这里的索引值为0 只是一种写法而已,只 ...

  2. react-antd 按需加载报错

    基于create-react-app 搭建的 react 项目 引入  antd UI  配置按需加载 但是报一下错误 .翻译过了一下 是内嵌JavaScript选项没有开启什么的 大白话就是 les ...

  3. webstorm离线装载Material Theme UI

    首先说说需求,由于直接用webstorm听说VS挺火的,但是初恋的感觉是其他任何编辑器无法替代的 瞎说了一些话,新公司内网开发,用的是vscode,但是我还是喜欢用webstorm,连不上网,所以不能 ...

  4. python中正则表达式 re.findall 用法

    在python中,通过内嵌集成re模块,程序媛们可以直接调用来实现正则匹配. 其中,re.findall() 函数可以遍历匹配,可以获取字符串中所有匹配的字符串,返回一个列表. 在python源代码中 ...

  5. Linux学习笔记 11

    移除文件 #rm -i file 有信息确认的文件删除 #rm file1 file2 有信息确认的文件删除 #rm -rf file 强制删除file文件

  6. bootstrap图片轮播

    <div class="carousel slide" id="myCarsousel" style="width:790px;"&g ...

  7. 机器学习模型从windows下 spring上传到预发布会导致模型不可加载

    1.通过上传到redis,程序通过redis拉取模型,解决问题. 2.问题原因初步思考为windows下模型文件上传到 linux导致,待继续跟进查找.

  8. 英语口语练习系列-C32-建筑-述说时间-暮秋独游曲江

    词汇-building(建筑) entertainment Olympic-sized swimming pool tennis court basketball field football pit ...

  9. 如何查看linux版本信息

    查看系统信息 [root@root]# hostnamectl Static hostname: root Icon name: computer-desktop Chassis: desktop M ...

  10. java第七周动手动脑

    public class ParentChildTest { public static void main(String[] args) { Parent parent=new Parent(); ...