建站/快速入门
视频配音通过GPT-SoVITS生成,采用陈酿煤气罐头@bilibili训练的27(井芹仁菜)模型,参考音频nina3 (3).wav
、语速1.1倍。
由于我缺少精力配额、不善制作视频指南,所以这是个测试性质的文章,有待进一步优化。
视频
文本
当我们访问域名时,就能看到一些精美的网页,这是如何实现的呢?
0. 站点资源
站点资源可以简单解构为两个部分:域名、服务器。
我们访问域名
,实际上就是在访问服务器
,服务器就像你的电脑一样是真实存在的硬件设备[1],托管于服务器提供商的机房中[2]。
[1]:个人博客用途的服务器配置通常在2c2g及以内,服务器商不可能维护一堆低配置的硬件,因此,我们于网络上购买的服务器通常是来自于高配置服务器所创建的虚拟机。同理的还有宽带,我们使用的是高配置机器通过软件划拨的一部分资源,如此也形成了“弹性性能”,比如设定我们只有3Mbps带宽,但实际峰值能跑到30Mbps及以上,以应对短期的高爆发需求(长期如此会被限速),也称为“共享宽带”,优点是便宜,缺点是如果服务器商超售、大量的人同时使用,我们能利用的性能就会变低。一般如阿里云这类大服务商正经售卖的机器不用担心此类情况,主要发生于那些三无小企业。
[2]:部分服务器提供商其实没有自己的机房,而是委托给专门的机房、数据中心,自己有租售权,然后转卖给用户。像阿里云这种巨型体量的则为自建数据中心。
1. 通过域名访问服务器
我们在浏览器输入域名并访问站点时:
- 首先会检查本地缓存[3],看浏览器及系统[4]是否有对应记录,若有则直接访问记录的IP,若无则:
- 检查hosts文件,看是否手动设定了域名及IP的对应关系,若有则按照我们设置的为准,若无则:
- 向DNS服务器发送查询请求,设置DNS服务器的场景通常有两个:本地设备、路由器[5],查询的情况可以简单分为两种:
- DNS服务器有该域名的缓存,则直接返回对应的IP地址,若无:
- DNS服务器没有该域名的缓存或缓存过期,则发起递归查询[6]:
- 查询
根DNS服务器
,返回对应的TLD DNS服务器
(顶级域,例如.com
); TLD DNS服务器
返回该域名的权威DNS服务器
地址;权威DNS服务器
返回对应的IP
。
- 查询
- 获得受访域名对应的IP地址。
因此,我们需要在域名提供商处进行设置dns解析,将域名指向服务器的IP地址,并等待1-10分钟使设置生效。
[3]:缓存指临时的存储内容,比如即时通讯工具中我们没有下载的聊天记录(包括图片和视频),都是被缓存——即暂时性的存储——到本地设备中,如此我们下次访问目标资源时会直接从本地缓存加载内容而不需要向服务器重新请求资源,可以提高访问速度。缓存的缺点是“所访问内容可能是过期的”,比如我们通过浏览器访问网站,浏览器也会缓存部分资源以在下次访问时直接从缓存加载从而提高访问速度,如果此时我们更改网页内容,则我们再访问网站所看到的内容还是旧的。需要通过ctrl+f5
、ctrl+shift+r
来强制刷新缓存,或等待一段时间直至缓存过期。DNS服务器同理,我们在访问站点时,浏览器和系统也会缓存解析记录,从而使下次访问时免去重新解析的步骤以提高访问速度,但DNS缓存也可能会过时,需要刷新缓存来解决。
[4]:Linux系统以Ubuntu为代表的众多发行版默认只有DNS解析而未开启缓存功能。
[5]:如果我们在本地设备设置了DNS服务器则会以本地设备的设置为准,无论解析结果如何都不会通过路由器设置的DNS服务器;在本地设备未设置DNS服务器时,才会由路由器设定的DNS服务器解析域名。
2. 通过服务器获得网站资源
前面已经提到,服务器是真实存在的设备,它的身份标识是IP地址[7],域名只是桥梁,弥足IP地址不易记忆及不具风格等缺陷的产物。
我们访问域名,并解析出服务器的IP地址,只是让我们知道该域名指向的服务器,具体能获得什么内容,还要看服务器的配置。
以建站为例,我们需要部署(通过ssh)web环境以返回正确的资源,其中必不可缺的是提供web服务的软件,安装并运行任意一款(本文以apache2为例)后,我们再访问域名或ip就能看到对应软件提供的欢迎页。
不同的web服务软件的配置不同,以apache2为例,网站资源路径是/var/www/html/
,您可以在此放置一些网页文件,并通过浏览器访问。
到此为止,您已经拥有了一个用于建站的网络服务器。
但目前只支持解析静态网页资源(html+css+js),如果我们需要实现更高级的功能,例如部署一个您现在访问的基于mediawiki的动态网站,则需要安装必要的拓展,例如:
- 提供动态交互的脚本语言(如PHP);
- 存储各种数据以配合动态需求的数据库(如Mysql);
- 其他必要的依赖、拓展。
安装及配置好上述服务后,我们就可以下载mediawiki框架,将框架文件放置于网站资源目录内,访问网站并经过初始化设置后(并将默认项设置为index.php),您就拥有了一个动态网站。
[7]:我们的电脑、手机也是真实存在的设备,为什么无法通过IP地址进行访问呢?因为我们的IP不是公网IP。
3. 结语
这则视频主要目的是配合思维导图向您简要的介绍“访问网站”时所发生的事,以此让您知道您每一个步骤都具有什么意义。我本身并不喜欢视频创作,具体细节请以文章为主。
这就是建站的简要流程,其中还有很多细节,例如购买域名/服务器的建议、防火墙、ssl、web服务软件的配置、多站点配置、其他形式的网站(如静态网站生成器)、具体的操作和技术细节等等。
简单来说,这是需要您做的(一般动态网站所需要的):
- 购买域名;
- 购买服务器;
- 安装web服务软件(apache2);
- 安装动态网站必要的软件(php+mysql);
- 下载并将框架文件放置于网站资源目录内;
- 大功告成。
建站就是搭积木,我们将不同用途的积木以适宜的方式组织到一块,以此实现预期功能。通过积木自主搭建模型比较困难,但如果给了您图纸,您只需要按照需求复制粘贴所提供的命令即可,至少简单的搭建网站没有什么技术门槛。唯一需要您突破的或许是因刻板印象及未知而对“命令行”产生的畏惧。
QA
Q:为什么不自己训练声音模型?
A:啊,我打标日文?因为我不懂日语,我自己上也是手动扣人声素材、ai去背景音、ai识别语音内容、手动靠机翻/AI打标,既然有现成的,就不这么麻烦了。
Q:看不懂怎么办?
A:这个视频及介绍非常简陋,这个问题的责任方应当在于我。不过您具体是对哪里有疑问,或者说,您想了解的是哪部分?
Q:那么多文章我看哪个?
A:诚如结语所言:
- 您需要购买服务器、域名,按照其中的指引和说明选择每个文章中的任意一个方案,包括了您需要对两者做什么;
- 而后阅读web环境了解您需要掌握的基础知识;
- 由于我只提供了安装LAMP环境的指南,所以您只能以此作为Web环境的基础,它包括了web服务软件和动态网站必要的组件;
- 然后安装您需要的框架,例如本站使用的:Mediawiki框架;如果您不想使用它也可以阅读框架参考其他推荐;
大功告成,您也可以直接按照建站的索引,逐个阅读文章,它们顶部都有描述您需要做的事(包括在当篇文章及之后)。