云服务器免费试用

腾讯云cloudbase(腾讯云cloudlite认证)

服务器知识 0 766

本文目录:

  • 1、搞懂自定义域名
  • 2、hexo使用github action自动部署至腾讯云开发静态网站托管服务以及github pages

搞懂自定义域名

上次写了一篇给 Gihub Pages 添加自定义域名的文章,之后感觉写得还是偏实践多一点,只做到了受人以鱼。

为了让大家在别的场景下也能搞定自定义域名,比如腾讯云网页部署、Heroku 自定义域名、自定义 CDN 域名。,今天就来写篇更通用的文章来总结一下自定义域名那些事。

如果我们要访问一台电脑上的资源,一般是需要通过 IP 地址来进行访问的。比如电脑上跑了一个 React App,那么在电脑的 就可以访问本机的页面

假如电脑 IP 地址为 192.168.1.10 ,而且手机和电脑都连上同一个 Wifi,那么在手机上输入 也可以访问到这个网页。

当我们访问服务器上的文件(html, js, css 等),其实本质上也是访问远端的一台电脑,也需要通过 IP 地址来访问。这就导致一个问题了:没人能记得住这串数字。

既然记不住就起个名字喽。 这就是域名的由来,也就是像下面这样 Map。

但是等我们给这个 IP 起了新名字之后怎么告诉别人呢?所以,得有一个超大日记本记录上面这些 Map 关系:

DNS (Domain Name System) 服务器就是帮我们记录并解析上面这些关系。这也就是为什么面试题 “输入 URL 之后会发生什么” 里会有一步是要到 DNS 服务器解析 IP 地址,好让我们访问到正确的服务器资源。

当然,DNS 解析服务并不单单只有 域名 - IP 地址 一个功能,还能解析邮件服务器、CNAME 配置等。下面我就直接结合 腾讯云 的 DNS Pod 的解析规则来说明吧。

首先,上面一直在说的 域名 - IP 地址 这样的 Map 记录叫做 A 记录,也即 Active Record。 是最最最常见的域名解析。

比如我们买了个服务器,一般都会有公网的 IP 地址,我们只需要添加一条 A 记录,把域名指向自己服务器的 IP 地址就好了。

另一个常见的例子就是 Github Pages 自定义域名 其中 的一种配置:添加 4 条 A 记录,分别指向下面的 IP 地址:

CNAME 就是域名的昵称,可能理解为 IP 的昵称(域名)的昵称(CNAME)就是 CNAME。其实我们平常更多接触到的并不是 A 记录,而是 CNAME 记录,常见于一些部署平台上。

当部署你的个人网页时,这些部署网站都会自动给你一个非常 Low 的域名,比如 Github Pages 的 haixiangyan.github.io ,或者 Heroku 的 haixiangyan.heroku.app ,再或者腾讯云的 “乱码” 域名 thedemo-9gf4vat5207cf224-1253834571.ap-shanghai.app.tcloudbase.com 。

只要我们有了自己的域名,在 DNS 上添加一条 CNAME 记录,指向上面这些第三方服务商自动自成的域名,那么就能通过我们的域名直接访问第三方服务平台上的资源了。

另外一个常见的场景就是 CDN 服务器,如果在腾讯云上买了一个 CDN 服务器,它也会提供一个 “不那么乱码” 域名,比如我的个人网站就是 。同理,在 DNS 添加一条 CNAME 记录指向 CDN 提供的域名就能访问 CDN 上的资源了。

这个 TXT 记录,目前我使用到的场景是域名验证操作:当腾讯云要验证这个域名是否是合法/激活的,那么需要你在 DNS Pod 上添加一条 TXT 记录,记录值腾讯云会提供给你。

添加了之后,腾讯云就会查看这条 TXT 记录值是否正确,从而验证域名是否合法。

上面的 A 记录填写都是针对 IPv4 的 IP 地址,也是最最最常见的 IP 地址。计算机发展到现在,有些已经用上了 IPv6 了,所以 AAAA 记录就是用来解析成对应的 IPv6 地址的,不过目前用的很少。

NS 也就是 Name Server。还记得上面说到的 DNS 么?NS 可以理解为 DNS 服务器。

一般域名服务商都会有自己的 NS,并且都默认使用自己的 NS 来解析域名。如果你不想用当前这个域名服务商的 NS 来解析域名,也可以换成别家的。

除非有特别需求,NS 记录使用场景非常少。

设置邮箱的记录。没怎么用过,不评价。

我们一般接触到的就是上面这些记录,腾讯云还提供了别的记录类型:

注意,上面像 “显性 URL”、“隐性 URL” 可能在别的域名服务器是没有的,比如 namesilo.com 这个便宜货。

讲真,国内的云服务真的做的比国外好太多了,很多功能都很实用,强烈推荐大家使用国内的云。

了解了 DNS 解析记录还不够,还得了解域名的分级。

比如 ,顶级为 com ,二级为 baidu ,三级为 www 。当在我们购买域名时,买的就是 顶级 + 二级域名 ,直接把顶级和二级域名锁死了。

当添加域名解析记录时,可以在 主机记录 这个字段里指定第三级的域名:

图里由上到下配置得到的域名完全体为:

后面两个只是腾讯云给你的示例而已,就不举例了。

子级的好处就在于可以不用上线一个网站就买一个对应域名,太费钱了~ 比如我之前买了 yanhaixiang.cn 这个域名,当要用这一个域名分别指向 国内腾讯云上的个人网站 ,以及 Github 提供的 Github Pages ,在添加两条记录之后:

就可以在 访问国内的 腾讯云个人网站 ,在 则访问 Github Pages 的个人网站 ,非常悠亚。

国内:腾讯云、阿里云、华为云等都不错。国外:NameSilo、GoDaddy、AWS等。

个人推荐在国内买,原因是国内的云服务商功能非常齐全,而且服务之间关联度非常高,可以说有了国内域名走遍天下都不怕,没有国内域名啥都捉襟见肘。

除了 .com 和 .cn 常见的顶级域名外,还有 .xyz , .top 这些便宜的顶级域名可以选择。

顶级域名中有一些是比较敏感的,比如 .law ,这种就只能由专业机构来注册:

如果实在想要 .com 这种牛逼的顶级域名,可以试着买带 - 的二级域名,比如我之前就买了一个 easy-refer.com 的域名,19 刀/年。

二级域名允许有 - 的原因是为了解决名字的混淆问题,比如你的公司叫 Who Represents ,然后你注册了一个 whorepresents.com 的网站,由于域名是不区分大小写的,很容易被误解为 Whore Presents ,变成了 妓女的礼物 。除了这个,还有 Experts Exchange 的 expertsexchange.com 被理解成 Expert Sex Change ,当场社死。

加了一个 - 连字符可以更好地 “分词”,不被别人误解网站内容。

二级域名除了英文还能选择中文的,比如《爱情公寓》里的 www.张伟是混蛋.com :

不开玩笑,这个网站也是能正常访问的,里面的内容都是和《爱情公寓》有关的内容。最旧的贴子是 2011 年,这个网站大概也是那个时候上线的吧,不知不觉已经过了 10 年了呢~

由于域名的 “唯一性”,在当年,注册了一个好的域名比建一个好看的网站更值钱,比如 apple.com , baidu.com 等。这也导致出现了一些投机分子:一出手就买一堆域名,然后等公司上门收购域名。

只有国内的服务商需要做域名备案,也算是中国特色。最近我备案了 3 个域名,每个域名备案大概需要 1 个月的时间来备案。备案也不仅仅填几个表格就完事了,还是挺多地方要注意的。

按照国内相关法律,域名备案前 必需要有一台租期大于 3 个月的服务器。 而国内一些云厂商为了能绑定销售,一般都要你买自家的服务器。

当然,只要有一台上面的服务器,在期间内可以给多个域名进行备案。

还有一点域名之间不能同时备案,一时间只能备案一个。所以如果你有多个域名要备案,要挑最紧急的那个来备案哦~

给你的网站起名是非常困难的一件事,我经常被打回,如果你做的是个人网站推荐使用 “个人项目展示” 这个名字,“个人网站” 是黑名单中的名字。

紧急联系人电话最好别瞎填,有的时候备案那边的人会抽查这个电话,如果这个紧急联系人电话打不通,接不了,那么你还得更换,更换本质上是又要有一遍备案流程,所以最好一开始就弄好这个,别问我是怎么知道的。

现在备案需要签署一份类似“合同”之类的文件,需要用到红色印泥,这个在打印室就有(当时我差点在网上买了一个)。

不过,就算备案有问题,工作人员几乎 1 天就打电话过来让你改正的,所以不用太慌~

最后,稍微总结一下:

hexo使用github action自动部署至腾讯云开发静态网站托管服务以及github pages

原文地址:

谈及静态网站的好处,无非是快速轻量,甚至无需购买服务器,使用github pages或者coding等托管即可实现。同时,jsdelivr可对github公开仓库的静态资源进行加速,并且自带全球cdn,快速,并且完全免费。

近期,我的博客网站也迁移到了hexo,并托管在github pages,由于之前申请过腾讯云开发的9.9元静态网站托管服务,本着不用白不用的原则,我把国内的线路以及博客生成的页面都放在了腾讯云开发静态网站托管服务上。

首先在本地安装hexo环境,配置好主题以及自定义的配置,然后将整个hexo目录推送到github私有仓库。私有仓库在接受到push之后,使用github action进行hexo g和hexo deploy,将生成的静态文件推送到另一个以 用户名.github.io 为名称的仓库。

如你所见,我们需要使用两个github仓库来构建我们的个人博客,其中私有仓库(我们可以将名称设置为blog-source)作为博客源文件保存目录,包含所有的hexo配置文件以及我们的主题文件。

这样的好处就是,我们可以完整保留hexo的目录,不用担心文件丢失的问题,还有就是我们可以直接在github网页端直接进行文章的写作,并且支持原生的github markdown格式。

在我们commit之后 github action会自动帮我们构建以及发布,我们只需要安心写作即可。

这一步可以根据hexo官方文档来进行配置。

一个是私有的仓库,用来存放hexo所有的源文件,另一个是公开的以 用户名.github.io 的仓库。

使用ssh-keygen生成一组公私秘钥对

在 Settings - SSH and GPG keys 添加刚刚生成的公钥,名称随意。

在私有仓库的 Settings - Secrets 里添加刚刚生成的私钥,名称为 ACTION_DEPLOY_KEY 。

在hexo目录创建 .github 文件夹,并在里面创建 workflows 文件夹,然后在里面新建 blog.yml

贴出我的GitHub action配置文件,后面再进行讲解。

其中,在31至38行内,可以添加自己所使用的hexo插件,如果本地测试的时候使用了此插件,一定要记得将那个插件的npm安装命令写在那里。

云开发Cloudbase提供了可直接使用的action:

在腾讯云开发控制台获取token:

然后在项目 Setting/ Secrets 里设置 SECRET_ID , SECRET_KEY , ENV_ID 信息

根据文档做出修改然后添加在blog.yml后面

同时,目前我也遇到很多问题,包括到现在为止还无法解决的问题。

一般来说是无法推送 .git 目录的,如果你使用的主题是直接使用git clone下来的,那么一定就会存在 .git 目录,这时我们可以在.gitignore文件内忽略此目录或者直接删除.git文件夹。由于我是直接删掉文件夹,所以另一种方式请大家自行尝试。

其实我最开始是想在公开仓库设置一个github action,在推送到公开仓库之后再由公开仓库的action推送到腾讯云 开发,但是不知道为何hexo deploy的时候无论如何都不会将 .github 文件夹推送上去,即使配置了 skip_render 和 include 也不行,但是我在本地hexo g的时候就可以在public目录生成 .github 文件夹,并且我在网页端公开仓库尝试创建action文件,可以推送成功,但是私有仓库推送之后action文件就会被覆盖,目前暂时无法解决这个问题。

所以只能妥协在同一个仓库进行构建推送,由于处理的文件较多,所以每次的部署都会给我发送一封构建失败的邮件,但它其实是已经部署成功了,我查找了很多的资料,目前暂未解决这个问题,如果您遇到这个问题并且具有解决办法,烦请您告知,非常感谢!

【腾讯云cloudbase】的内容来源于互联网,如引用不当,请联系我们修改。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942@qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 腾讯云cloudbase(腾讯云cloudlite认证)
本文地址: https://solustack.com/12282.html

相关推荐:

网友留言:

我要评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。