当前位置: 首页 > 编程日记 > 正文

迁移博客到香港虚拟空间

原文: https://rebootcat.com/2020/09/20/virtual_space_blog/

缘起

我的博客一直采用的是 github pages 来托管,中间断断续续的也没怎么管理过,偶尔写几篇博客,所以也就没怎么关心过访问速度,搜索引擎收录等问题。

不过我对博客一直还是情有独钟,我觉得像我一样的软件工程师,如果能有个人博客,并且保持一定程度的更新率还是很有必要的。

这次迁移主要考虑三个原因:

  • 访问速度较慢
  • 博客还不支持 https
  • 谷歌搜索引擎收录较少

github pages 服务器位于美国,对于中文博客来说,访问还是有一些慢的,且不说 github 未来在我国很有可能被 feng,所以打算迁移到国内来。之前博客其实是有部署过双线的,国外走 github,国内走 coding,但奈何 coding 不争气,后来我干脆停了 coding 的解析。现在打算找一个付费的香港虚拟主机,一年几十块钱搞定。

另外就是由于之前已经采用了 rebootcat.com 这个域名,所以无法在 github pages 上开启 https(当然方法是有的,比如使用 cloudflare 加速,这个详见我另外一篇博文),所以这次的迁移也打算开启全站 https。

购买香港虚拟主机

虚拟主机是什么?

虚拟主机(英语:virtual hosting)或称 共享主机(shared web hosting),又称虚拟服务器,是一种在单一主机或主机群上,实现多网域服务的方法,可以运行多个网站或服务的技术。虚拟主机之间完全独立,并可由用户自行管理,虚拟并非指不存在,而是指空间是由实体的服务器延伸而来,其硬件系统可以是基于服务器群,或者单个服务器。(来自某百科)

简单来说,虚拟主机就是你可以用来托管网站,给你一定量的存储空间,以及访问流量,还有IP 或者域名绑定等。

这里需要说明的是,你能搜到很多免费的虚拟空间,免费的我个人不太建议,免费的有很多问题这里就不细说了,况且付费的也没有很贵,一年几十块钱,当然还是有可能跑路的(手动狗头)!

如上图所示,这是我购买的虚拟主机的控制面板,提供了比较方便的中文管理面板,比如域名绑定,缓存设置,SSL 设置,FTP 管理等。

具体是哪一家,我就不说了(没有给我广告费,我的服务商看到了欢迎联系)。

绑定域名

由于之前是解析到 github pages 的,现在购买了虚拟主机后,会有一个新的 IP,需要重新解析域名到这个 IP 上

如上图所示,红色框里面的就是新加的两条 DNS 解析记录,黄色框里面就是之前解析到 github pages 的记录,现在我把他们全部暂停了(以防后期会用到)。

解析完成之后,等待生效,使用多地 ping 的工具去测试一下 DNS 解析是否生效了。或者你本地使用 ping 看是否生效了。

$ ping rebootcat.com -c 4                                            [10:45:50]
PING rebootcat.com (109.206.246.144): 56 data bytes
64 bytes from 109.206.246.144: icmp_seq=0 ttl=52 time=44.976 ms
64 bytes from 109.206.246.144: icmp_seq=1 ttl=52 time=49.814 ms
64 bytes from 109.206.246.144: icmp_seq=2 ttl=52 time=46.947 ms
64 bytes from 109.206.246.144: icmp_seq=3 ttl=52 time=46.809 ms--- rebootcat.com ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 44.976/47.136/49.814/1.731 ms

可以看到上面解析到了新的 IP 上。

FTP 上传网站源码

我的博客是基于 hexo 搭建的,之前是直接把网站源码发布到 github pages 上了:

hexo d -g

现在需要把生成的网站源码打包上传到虚拟主机上。

hexo 生成的网站源码位于 public 目录下:

zip -r blog.zip public

然后把 blog.zip 通过面板上的 在线文件管理 上传到虚拟主机的根目录里,比如我的根目录是 /wwwroot/,然后点击解压。

完成之后,浏览器输入网站

http://rebootcat.com

看能否正确响应。一般来说,没什么问题,如果无法访问,请联系你的虚拟主机提供商。

自动化上传网站源码

上面的步骤,基本上已经完成了博客迁移的大部分工作了。不过对于程序员来说,怎么能每次更新博文之后还要重复上面的步骤,甚至是需要每次用浏览器打开虚拟主机控制面板上传网站源码,那岂不是很麻烦,并且不够极客精神。

那必然是要做成自动化的方式,一个命令搞定网站更新。

其实也简单,就是利用服务商提供的 FTP 口令,使用 python 脚本自动化上传网站源码,实现自动化更新。

python 脚本可以直接从我的 github 下载:

https://github.com/smaugx/dailytools/blob/master/ftpblog.py

然后修改代码里的网站域名以及 ftp 口令,改成你自己的,修改上传的本地目录以及远程目录,然后执行脚本自动化上传:

python ftpblog.py

配置 HTTPS

使用的是 https://freessl.cn/ 生成免费的 HTTPS 证书。

打开网站,输入你的域名以及邮箱,根据提示下载一个工具 KeyManager,然后生成证书:

然后回到 freessl.cn 网站页面进行 DNS 验证:

目的就是为了验证你的域名的所有权。这里根据提示,去 DNS 解析的地方设置解析记录。

验证成功之后使用 KeyManager 导出证书:

然后会得到一个类似于 rebootcat-com-nginx-0909002710.zip 的包,解压之后会得到两个文件:

rebootcat.com_chain.crt
rebootcat.com_key.key

用编辑器打开这两个文件,或者直接 cat 这两个文件,一个是 SSl 的证书,一个是 SSL 密钥,把这两个文件的内容拷贝到虚拟主机面板的 SSL设置处:

并且开启了 http 跳转 https。

到此, HTTPS 证书设置就完成了。

注意需要记住 KeyManager 的主密码

试试用 https://rebootcat.com 看能否正确访问呢?

网站云监控

由于购买的是香港的虚拟主机,毕竟一年也才几十块钱,很难说服务提供商就跑路了,为了避免这一类事情发生的时候导致博客无法访问,有必要对博客网站进行一些云监控,一旦出现异常,则告警。

免费的网站监控工具有很多,我用的是阿里云的监控以及 UpTimeRobot 的网站监控:

  • https://uptimerobot.com/dashboard
  • https://cloudmonitor.console.aliyun.com/

这个自行设置一下,注意设置好报警阈值,不然可能会造成误报:

所以一旦出了很严重的报警,那么说明你的服务商跑路了。。。

效果

这里就简单贴一下迁移前后的效果图:

迁移前:

迁移后:

可以看到还是有很好的改善的,毕竟服务器位于香港。

The End

到此,博客迁移就完成了,访问速度提升了,也开启了 https。接下来我会考虑对博客首页做一些优化,但由于现在图片走的其实还是 jsdelivr 的国外 cdn,所以速度还是有点慢,可以考虑直接把图片放到网站根目录下,毕竟现在使用的是虚拟主机。

后面再说吧,也可以考虑把图片等放到阿里云或者腾讯云对象存储上。

Blog:

  • rebootcat.com

  • email: linuxcode2niki@gmail.com

2020-09-20 于杭州
By 史矛革

相关文章:

自动化神经网络理论进展缓慢,AutoML算法的边界到底在哪?

作者 | 夕颜出品 | CSDN(ID:CSDNnews)「AI 技术生态论」 人物访谈栏目是 CSDN 发起的百万人学 AI 倡议下的重要组成部分。通过对 AI 生态顶级大咖、创业者、行业 KOL 的访谈,反映其对于行业的思考、未来趋势判断、技术实践,以及成…

让电脑通过gns3里的路由器上网

题目我感觉写的不好,反正就是这个意思,看下文 头几天有网友问cisco2811路由器怎么用ACL封掉QQ,当时就想帮他,但是手里又没有cisco路由器,只有GNS3 cisco模拟器。 现在的问题就是要用gns3模拟器的路由器充当真实工作中的…

文件上传的渐进式增强

文件上传是最古老的互联网操作之一。 20多年了,它几乎没变,还是原来的样子:操作麻烦、缺乏交互、用户体验不佳。在这个新技术日新月异的时代,显得非常落伍。 网页开发者们想了很多办法,试图提升文件上传的功能和操作体…

使用 mkdocs 搭建个人 wiki 站点

原文: https://rebootcat.com/2020/09/20/wiki/ why wiki 博客通常是用来记录一些完整的文章,每篇文章有一个主题。但是我想把平日里的一些笔记也记录到我的博客里,但笔记是零散的,随时的,不是完整的一个主题。所以打…

追忆童年,教你用Python画出儿时卡通人物

作者 | 张同学来源 | 凹凸数据大家好,我是张同学。又到一年一度的国际儿童节,作为逢节必过的程序猿,怎么可以放过这个学习技能的机会呢?于是,今天我们来学习 Python 的 Turtle 库绘制童年的卡通人物,一起做…

xx学OD -- 消息断点 RUN跟踪(上)

这一篇讲的是 消息断点和RUN跟踪的简单知识这一篇没怎么看明白 大概使用知道了 怎么用不太清楚。介绍本次软件特点输入后木有反应(纱布垃圾的。。哈哈)启动OllyDBG载入这个程序,F9让它运行。这个程序按我们前面讲的采用字串参考或函数参考的方法都很容易断下来。…

iOS-UIWebView添加头部和尾部

2019独角兽企业重金招聘Python工程师标准>>> 前言 项目中使用UIWebView显示本地或者是服务器上的页面很容易,但是仅限于显示页面,可控性并不高,如果有需要在头部和尾部加上原生的view,显示部分信息相对于全部使用UIWeb…

epoll 入门例子 tcp server/client

原文: https://rebootcat.com/2020/09/26/epoll_examples/ 复习一下 上一篇博文 epoll原理深入分析 详细分析了 epoll 底层的实现原理,如果对 epoll 原理有模糊的建议先看一下这篇文章。那么本文就开始用 epoll 实现一个简单的 tcp server/client。 本…

张红忠:智慧化时代,如何通吃5G模组、AIoT?

受访者 | 张红忠,日海智能副总裁、云AIoT创新中心总经理记者 | Aholiab,编辑 | 邓晓娟出品 | AI科技大本营(ID:rgznai100)日海智能是目前国内AIoT领域的头部企业,以AIoT为核心,形成了5G&AI物联网终端、…

JQUERY打造隐藏在左侧的弹性弹出菜单

代码简介: 隐藏在左侧的弹性弹出菜单,从淘宝扣下来的,也可作为JAvaScript缓冲动画的典型教程。本弹性菜单可扩展性强,实际上不光可以做成菜单,也可布局一些图文混排的内容或一段视频,总之被弹出的内容是在一…

Num55 boss09(activiti安装以及API)

2019独角兽企业重金招聘Python工程师标准>>> 安装流程设计器插件: 使用框架提供的方式创建23张表: 流程部署,定义,启动&查询,办理任务: 流程的部署,查询,删除 & …

模仿nginx修改进程名

个人博客原文: https://rebootcat.com/2020/10/25/setproctitle/ nginx 进程名 使用 nginx 的过程中,我们经常看到 nginx 的进程名是不同的,如下: $ ps -ef |grep nginx smaug 1183 1115 0 05:46 pts/2 00:00:00 grep …

机器学习模型的超参数优化 | 原力计划

作者 | deephub责编 | 王晓曼出品 | CSDN博客头图 | CSDN付费下载自东方IC引言模型优化是机器学习算法实现中最困难的挑战之一。机器学习和深度学习理论的所有分支都致力于模型的优化。机器学习中的超参数优化旨在寻找使得机器学习算法在验证数据集上表现性能最佳的超参数。超参…

准备IE--复习NP,NP从头开始,每天学一点,就多一点收获

2011-07-07 今天开始重新开始NP!每天一实验,加油!写下心路历程,为自己加油!转载于:https://blog.51cto.com/sunchangsheng/605482

[20160608]自治事务引起死锁.txt

[20160608]自治事务引起死锁.txt --链接http://www.itpub.net/thread-2060966-2-1.html上的讨论,很久以前也遇到过 --(http://blog.itpub.net/267265/viewspace-721262/),时间有点久远,自己重复测试看看: 1.环境: SCOTTtest> &r/ver1 PORT_STRING V…

动感效果的TAB选项卡 jquery 插件

动感效果的TAB选项卡 jquery 插件 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns"http://www.w3.org/1999/xhtml"><head><me…

Linux上隐藏进程名(初级版)

缘起 上一篇博文 模仿nginx修改进程名 中提到了一种修改进程名的方法&#xff0c;就像 nginx 一样&#xff0c;给不同进程命名为 master 以及 worker 等。那么能不能把新进程名设置为空字符串呢&#xff1f;如果能&#xff0c;又会有哪些应用场景呢&#xff1f; 答案可能是能…

神操作!一行Python代码搞定一款游戏?给力!

来源&#xff1a;pypl编程榜一直以来Python长期霸占编程语言排行榜前三位&#xff0c;其简洁&#xff0c;功能强大的特性使越来越多的小伙伴开始学习Python 。甚至K12的同学都开始学习Python 编程。新手入门的时候趣味性其实最重要的。那么一行Python 代码到底能玩出什么花样&a…

jquery对所有input type=text的控件赋值

function resetData() { $("input[typetext]").each( function() { $(this).attr("value",""); } ); }

free not return memory

个人博客&#xff1a;https://rebootcat.com/2020/11/05/free_mem/ 内存泄露&#xff1f; 观察到一台机器上的内存使用量在程序启动之后&#xff0c;持续增长&#xff0c;中间没有出现内存恢复。怀疑是不是出现了内存泄露的问题&#xff1f; 然后使用相关的内存分析工具进行了…

成大事必备9种能力

挑战生存的能力&#xff1a;善于在现实中寻找答案 1、摆正心态&#xff0c;敢于面对现实 对于那些不停地抱怨现实恶劣的人来说&#xff0c;不能称心如意的现实&#xff0c;就如同生活的牢笼&a…

懂语言者得天下:NLP凭什么被称为人工智能的掌上明珠?

受访者 | 简仁贤&#xff0c;竹间智能创始人&CEO记者 | 邓晓娟出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;随着技术的发展&#xff0c;大数据、云计算、人工智能、区块链都慢慢地为人熟知。2016 年 Google 推出 AlphaGo&#xff0c;让人工智能走进了大众的视…

[转]SIFT特征提取分析

SIFT&#xff08;Scale-invariant feature transform&#xff09;是一种检测局部特征的算法&#xff0c;该算法通过求一幅图中的特征点&#xff08;interest points,or corner points&#xff09;及其有关scale 和 orientation 的描述子得到特征并进行图像特征点匹配&#xff0…

博客大事记之迁移博客到香港主机

个人博客&#xff1a;https://rebootcat.com/2020/11/10/move_blog_hk/ 前言 之前其实已经写过一篇博文&#xff1a; 迁移博客到香港虚拟空间&#xff0c;那为什么又要写这篇博客呢&#xff1f; 上次其实是把我的博客迁移到一个香港的虚拟空间里&#xff0c;但是不到半年的时…

限时福利:腾讯高级专家手把手教你打造 OCR 神器!

OCR&#xff0c;英文全称即 optical characters recognition&#xff08;光学字符识别&#xff09;&#xff0c;通过服务器把图片上的文字识别出来&#xff0c;以供大家编辑使用&#xff0c;比如进出火车站的时候&#xff0c;已经可以自动识别的身份证&#xff1b;在道路行驶中…

C++与.net的编译方式

C和.Net程序采用了两种不同的编译方式。 通常一个C编写的程序&#xff0c;都是一次编译成二进制的代码&#xff0c;在相应的操作系统平台上直接执行即可。 而.Net程序采用两次编译的方式&#xff0c;用C#&#xff0c;VB.Net等语言写成的程序被编译成IL代码&#xff0c;通过CLR在…

awk (一)

示例文件&#xff1a;[rootorclsrv ~]# catsample Heigh-ho! sing,heigh-ho! unto the green holly: Most friendship isfeigning, most loving mere folly: Then, heigh-ho, theholly!使用感叹号(!) 作为字段分隔符(FS)打印示例数据的第1 个字段&#xff1a;[rootorclsrv~]# …

TCP全连接和半连接的问题探讨

个人博客&#xff1a; https://rebootcat.com/2020/11/14/tcp_accept/ 从何说起 说起 tcp 的连接过程&#xff0c;想必 “3次握手4次挥手”是大家广为熟知的知识&#xff0c;那么关于更细节更底层的连接过程也许就很少人能讲清楚了。 所以本文会先简单回顾一下 tcp 的 3次握手…

[转] ASP.NET MVC3 路由和多数据集的返回

1.ASP.NET MVC3 中的路由 同前边一样本篇并不会过多的介绍理论知识&#xff0c;我们在Global.asax.cs文件中可以看到如下代码&#xff1a; routes.MapRoute("Default", // Route name"{controller}/{action}/{id}", // URL with parametersnew { controlle…

给Python代码加上酷炫进度条的几种姿势

作者 | 刘早起来源 | 早起Python&#xff08;ID: zaoqi-python&#xff09;大家好&#xff0c;在下载某些文件的时候你一定会不时盯着进度条&#xff0c;在写代码的时候使用进度条可以便捷的观察任务处理情况&#xff0c;除了使用print来打印之外&#xff0c;今天本文就介绍几种…