官方下载站 - scutrobotlab/RM2022_SimulatorX GitHub Wiki

官方下载站

设计起因

模拟器的用户规模越来越大,只使用 QQ 群进行版本的发布不能满足日益扩大的用户群体。

技术实现

我们使用了开源软件 h5ai 作为下载站的 Web 服务器。

h5ai 官方网站 https://larsjung.de/h5ai/

这是一个非常轻量的 PHP 下载服务器软件

部署策略

下载站的官网是 https://dl.sim.scutbot.cn/

打开上述网站后会被 301 重定向到 https://dl-sh.sim.scutbot.cn/

第一个地址只是我们用来发布的地址,实际上下载站部署在第二个地址上。有运维经验的同学可以看出,第一个地址的端口是 443,而第二个是 20443。

为什么会有 20443

实际上后者是一台 NAT 服务器,选用这样的策略主要是为了省钱。在各大云服务商租用 2 个月的 100Mbps 带宽服务器,价格可以轻松上万;但使用 https://coal.coalcloud.net/ 炭云这类 NAT 机型只需要每月几十元,唯一的缺点是不能使用所有端口,另外比较常用的端口都无法使用。

按照这样的思路,我们搭建出来的下载站 https://dl-sh.sim.scutbot.cn/

为什么还有发布地址

下载站 https://dl-sh.sim.scutbot.cn/ 这么长的 URL 很难记忆,而且后面的 20443 很容易被输错。因此我们再架设了一个下载站发布页面,之后重定向到下载站实际的地址。通过 NAT 地址和发布地址的结合,我们兼顾了低成本和易于记忆。

# 下载站发布站点的Nginx配置
server {
    listen 80;
    listen 443 ssl http2;
    server_name dl.sim.scutbot.cn;
    return 301 https://dl-sh.sim.scutbot.cn:20443$request_uri;
}

实现效果

完整地址 https://dl.sim.scutbot.cn/

理论上用户需要输入的是 dl.sim.scutbot.cn,dl 是 Download 的缩写,sim 是模拟器的缩写。

下载站主页

下载站 2022UC