前言

我在去年 10 月初写过一个小工具叫 TransRepo,用于《收容失效终极版》的翻译者们自己更新语言包。这个工具可以把 Github 仓库里的东西下载下来,删掉不属于语言包的文件夹(比如 .github),打包成压缩包,修改语言列表里的数据(最后更新时间和语言包大小),最后放到 文件中心南京对象存储,这样就可以利用 Cloudflare 的免费 CDN 减少服务器压力,同时保证内地玩家的正常下载。

在这个工具做出来之前,那些翻译者们需要找我,让我来更新语言包。这种方案非常简单,但会高度影响翻译者们的积极性。所以我在去年国庆闲得没事干的时候,大概地用 PHP 写了一个 TransRepo,做完后我还在《子悦杂谈》第二集 提了一嘴这个。刚开始用的时候还好,翻译者们更新的频率也更高了。但后来随着语言包越弄越大,用 PHP 的弊端就显现了。它毕竟是个脚本语言,并不是给这种长时间运行的任务所设计的。因此 TransRepo 几乎每次运行都会因为运行时间过长,被 PHP 杀掉。即使我设置了 5 分钟的超时时间,依然会在 3 分多钟的时候被杀。这个问题导致 TransRepo 几乎成了摆设,语言包就没几次能成功更新。

如同我受不了 Koishi 最后重写子悦机器一样,今年五一我就用 Golang 重写了 TransRepo。至于为什么用 Go,主要是因为它是并发式语言,适合网络编程,而且生态完备。对于 TransRepo 这个项目来说,尽可能快地开发完非常重要,更何况 Go 的性能也非常好。不过我对于 Go 的认识也只停留在听说过,我从来没学过,也从来没用过。

好在现在是人工智能时代,我不会写的部分直接丢给 AI 就好了。因此我只花了一天时间就把 TransRepo 重写完了,而且性能非常可观。写完之后就该把这玩意放到服务器上了,幸好新版宝塔可以轻松部署 Go 项目,隐藏端口号和绑定证书都很方便。

这篇文章的价值就在于怎么用宝塔部署 Go 项目,刚才扯那么多其实都没啥用,但是不写的话这文章又没什么内容。

正文

  1. 打开宝塔后台的“网络”菜单,找到“Go项目”选项卡。

  2. 点击“添加Go项目”,然后填写相关信息。TransRepo 因为需要 https 所以要添加域名。项目端口写程序用到的那个,我后面要配置反向代理所以随便找个能用的就行。

  3. 添加完后点击项目的“设置”,打开外网映射,然后申请免费证书。

  4. 这些都做完之后,你就可以访问你的域名了。此外你也可以把“强制HTTPS”打开。

结语

这种方式的最大优势就是可以和其他的网站和平相处,访问方式也和静态网站、PHP 网站一样,直接访问看不出来不一样。

这文章挺水的,看看得了。

标签: 宝塔, Golang, 网络编程