使用Træfɪk(traefik)来加速Qt在线更新
简述
在使用Qt的MaintenanceTool程序进行在线更新的时候遇到一个问题,就是访问download.qt.io实在太慢了,老是失败。所以想使用国内的镜像站来进行更新。
使用Qt的镜像站方法也很简单,下载Update.xml和Update_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在线更新的更多相关文章
- Træfɪk 服务发现解决方案
Træfɪk is a modern HTTP reverse proxy and load balancer made to deploy microservices with ease. It s ...
- Qt 框架的图形性能高(OpenGL上的系统效率高),网络性能低,开发效率高,Quick是可以走硬件加速——Qt中分为好几套图形系统,差不多代表了2D描画的发展史。最经典的软描画系统
-----图形性能部分-----Qt的widgets部分,运行时的图像渲染性能是一般的,因为大部分的界面内容都是Qt自绘,没有走硬件加速,也就是说很多图形内容都是CPU算出来的.但是widgets底层 ...
- 使用国内源解决Qt在线更新慢的问题
Qt在线安装更新工具默认使用官方的源,国内访问比较慢,可以在setting中增加国内的源来提高更新速度,如下面的源: http://mirrors.ustc.edu.cn/qtproject/onli ...
- kubernetes 部署 traefik 以及kubernetes dashborad
前言 本来打算通过 traefik 来实现 kubernetes dashborad 的服务访问,可是在配置过程中始终报错.最后无奈只能通过nodeport来实现kubernetes dashbora ...
- Qt 5简介
Qt 5简介 Qt 5概要介绍 在Qt 5这个版本中,Qt Quick成为了Qt的核心.但是Qt 5也继续提供了本地C++强大的功能来完成更好的用户体验,也提供了对OpenGL/OpenGL ES图形 ...
- 【win】【qt5打包】【qt程序打包成一个可执行文件(带图标任何win都可以运行哦)】
[前言] 业务需求将qt程序打包成win可执行文件.咱是做linux的,奈何用的麒麟系统,程序运行在win,好嘛,重新在win qtcreator编译后打包呗. [目标] 1.给qt程序添加一个图标. ...
- Golang优秀开源项目汇总, 10大流行Go语言开源项目, golang 开源项目全集(golang/go/wiki/Projects), GitHub上优秀的Go开源项目
Golang优秀开源项目汇总(持续更新...)我把这个汇总放在github上了, 后面更新也会在github上更新. https://github.com/hackstoic/golang-open- ...
- Go热门开源项目大全
监控系统 项目 简介 Star数 grafana/grafana Grafana 是一个用于监控指标分析和图表展示的工具, 后端支持 Graphite, InfluxDB & Promethe ...
- go语言熟知的开源项目
go语言在国内是比较火的,并且好多公司都用go语言进行重构之前的系统,今天来看下基本大家都知道的go语言的开源项目 1.Docker Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用 ...
随机推荐
- Ubuntu16.04多个版本GCC编译器的安装和切换
这几天在配置交叉编译ARM开发板的linux内核的过程中碰到了很多问题,其中包括了GCC版本太高等问题,由此我打算安装其他老的版本给我的Ubuntu16.04.实验过程如下: 官网的教程是最牛逼的,先 ...
- Mybatis下collections使用pageHelper进行分页
pageHelper在对mybatis一对多分页时造成查询总页数结果不对的情况. 可以做出如下修改: service层: public CommonResult worksList(String us ...
- CentOS7配置FTP服务器增强版~(零基础学会FTP配置)
ps:原文不知出处,但是原文也不能正常启动,这里做了一些修改!如果能正常配置请在下方留言让更多的人看到,因为之前我本人照着网上的教程安装卸载了十多次也无法正常使用,不希望后面的兄弟继续浪费时间,如果不 ...
- 1e9个兵临城下
https://ac.nowcoder.com/acm/contest/321#question 代码写得蛮丑的..真的很丑 像是高中教的veen图,并涉及到容斥原理. #include<cst ...
- Codeforces 1096D Easy Problem 【DP】
<题目链接> 题目大意: 给你一个字符串,每个字符有权值,问现在删除字符串中的字符使其中没有"hard"的最小代价是多少. 解题分析: 用DP来求解: 转 ...
- shell crlf to lf
UNIX/Linux Commands You can use the following tools: dos2unix (also known as fromdos) – converts tex ...
- XamarinSQLite教程创建数据库
XamarinSQLite教程创建数据库 安装SQLite/SQL Server Compact Toolbox后,就可以使用该插件创建数据库了.操作步骤如下: (1)在Visual Studio中, ...
- 输出日文CSV乱码问题
直接写用Excel打开时会乱码,需要加上下面代码中注释的三行 fos = new FileOutputStream(file, false); //fos.write( 0xef ); //fos.w ...
- JavaScript中本地对象、内置对象和宿主对象(转)
首先解释下宿主环境:一般宿主环境由外壳程序创建与维护,只要能提供js引擎执行的环境都可称之为外壳程序.如:web浏览器,一些桌面应用系统等.即由web浏览器或是这些桌面应用系统早就的环境即宿主环境. ...
- Flask 三方组件 Flask-Session
使用 from flask import session, Flask from flask_session import Session from redis import Redis app = ...