惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
雷峰网
雷峰网
Recent Announcements
Recent Announcements
月光博客
月光博客
G
Google Developers Blog
腾讯CDC
S
Secure Thoughts
大猫的无限游戏
大猫的无限游戏
T
Tenable Blog
云风的 BLOG
云风的 BLOG
W
WeLiveSecurity
博客园 - 【当耐特】
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
博客园 - 聂微东
The Cloudflare Blog
阮一峰的网络日志
阮一峰的网络日志
人人都是产品经理
人人都是产品经理
P
Privacy International News Feed
MyScale Blog
MyScale Blog
K
Kaspersky official blog
T
The Blog of Author Tim Ferriss
Attack and Defense Labs
Attack and Defense Labs
Spread Privacy
Spread Privacy
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
aimingoo的专栏
aimingoo的专栏
I
Intezer
Vercel News
Vercel News
小众软件
小众软件
Simon Willison's Weblog
Simon Willison's Weblog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
N
Netflix TechBlog - Medium
P
Proofpoint News Feed
Latest news
Latest news
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Tor Project blog
S
Security Affairs
P
Proofpoint News Feed
博客园 - 三生石上(FineUI控件)
博客园 - Franky
C
Cyber Attacks, Cyber Crime and Cyber Security
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
美团技术团队
Recent Commits to openclaw:main
Recent Commits to openclaw:main
S
Security @ Cisco Blogs
L
LINUX DO - 热门话题
Know Your Adversary
Know Your Adversary
Project Zero
Project Zero
D
Docker
L
Lohrmann on Cybersecurity
F
Full Disclosure

Posts on Changkun's Blog

Why High-Output Systems Are Often the First to Stop Growing Dark Forest Theory: A Formal Derivation Agents (or Humans) in Goal-Directed and Goalless Environments: On Pipelines, Priors, and the Rhythm Between Exploration and Exploitation At the Boundary of Self-Reference: From Stable Structures in Artificial Intelligence to the Self as a Recursive Model in an Open Dissipative System 2023 Reading List 2022 Reading List 2021 Reading List Are PSS/USS and RSS Actually the Same Thing? Performance Differences from Page Faults vs. Prefetching 2020 Year-End Review Migration with Zero Downtime 2020 Reading List The All in Go Stack Pointers Might Not Be Ideal for Parameters Eliminating A Source of Measurement Errors in Benchmarks Setup Wordpress in 10 Minutes 我为什么不再写博客了? 2019 年终总结 2018-2019 读书清单 Ten years of blogging Rethinking the Reflections on Communications and Trusts 2018 年终总结 Go source code study is open source Go source study: unsafe Pattern Go source study: sync.Pool Go runtime programming A Million WebSocket and Go Designing Asynchronous RESTful APIs 分布式杂谈01:CAP 理论的误解 Issues of Human-Bot Interaction 压缩法与深度网络的泛化性 Go in 1 Hour UMSLT04: The Past and Present of SGD UMSLT03: A Gentle Start of Learning Theory UMSLT02: A Breif History of Neural Networks UMSLT01: A Breif History of Regularization 不笑不足以为道 论文笔记:Generalization in Deep Learning 2017 年终总结 2017 读书清单 深度学习的泛化理论简介 删除 GitHub 上已经提交的敏感信息 硕士生涯的第一年就这样告一段落了 人肉计算(10): 系统参与激励 人肉计算(9): 陷阱的解法 别聊,一聊你就暴露 人肉计算(8): 人肉计算与数据科学中的陷阱 人肉计算(7): 社会行为分析 Hexo + GitHub + Travis CI + VPS 自动部署 人肉计算(6): 预测市场 人肉计算(5): 信用风险评级模型 读书与回报 瞎扯: 对现代企业理论与当下IT企业的商业模式和信息产业链的规律性的思考 人肉计算(4): 输入数据聚合与PageRank 又一次打整了一下博客 人肉计算(3): 输入数据聚合与链路预测 人肉计算(2): 意图博弈 GWAPs 人肉计算(1): 众包与群众智慧 对后辈同学在计算机专业上的答疑与解惑 在德国的医疗及住院体验 这可能不是一个技术博客了 实验楼楼赛第3期-Python-题解 迅速更换了 DISQUS Electron 深度实践总结 良好的编码体验的三个方面 2016 年终总结 2016 读书清单 最近在着手写的文章 微信小程序文档极致总结 谈谈过去三个月在实验楼的实习经历 Built a Desktop Client for My Blog Guacamole 源码分析与 VNC 中 RFB 协议的坑 《高速上手 C++11/14》正式发布 Docker 极速入门教程02 - 镜像与容器管理 Docker 极速入门教程01 - 基本概念和操作 阶段性沉默 ELK+Redis 最佳实践 苹果开源了LZFSE无损压缩 Hash 碰撞的一种思路 记一次完整的 Kaldi-TIMIT 示例运行 Kaldi 上的 TIMIT 例子 Kaldi 安装与部署 从科研写作谈起 Swift API 设计指南 有趣的人类 所以其实论文并没有什么鬼用 Githug 通关记录及指南 小结一下这学期的收获 2015 读书清单 2015 年终总结 负能量爆表 转眼就快两个月了 博客迁移记录 大三总结 这个世界,终究不会是我们的。 Linux 内核分析 之六:Linux 内核创建进程的过程 小说「泽缘」 Linux 内核分析 之五:system_call中断处理过程的简要分析 大创项目的标题真是每年都在考验同学们的想象力啊 Linux 内核分析 之四:使用库函数API和嵌入汇编两种方式使用同一个系统调用
终于全面启用了 HTTPS
Changkun Ou · 2016-07-17 · via Posts on Changkun's Blog

Published at发布于:   |   PV/UV: /   |   Reading阅读: 2 min

经历过这次迁移,我的博客站点算是维护过四次之多了。这个博客最初诞生的时候是部署在一个网友的服务器上的,第一次上线的时候还是一个 Wordpress 的站点。后来因为想弄到自己的服务器上,就搬了出来。随后了解到了 Hexo,就干脆整个迁移到 GitHub 上。而这次,却又从 GitHub 上迁移回个人的服务器,算是折腾了好大一圈。估计这次迁移后,就不会再有太大改动了。

这次迁搬出来后主要维护了以下几点:

  1. 将服务器系统从 CentOS 更改为 Ubuntu
  2. 将博客的整体主题做了更换
  3. 关闭了原有的博客站点
  4. 强制使用 HTTPS 访问本站
  5. 从 GitHub 迁移到自己的服务器上

下面来依次谈谈这几点维护的原因。

从 CentOS 更换到 Ubuntu

以前整个站点用的 LNMP 的架构,因为第一版的博客是使用 Wordpress 搭建的,第一次接触 Linux,就是接触的 CentOS。但随着时间的推移,我个人接触更多的反而是 Ubuntu,索性这次搬迁,全部做一次规整了。

博客整体主题做了更换

博客的主题使用的是 Hexo Next,在页面的 Footer 处我也保留了主题的链接,如果对这个主题感兴趣,可以点过去。

主题做了很多修改,最明显的修改就是可以看到博客的背景上有 一个粒子特效。

有不少人来信问我是怎么做到的,其实并不复杂,GitHub 上面有一个项目叫做 ParticlesJS

有兴趣的可以自己研究一下。还有一些修改,比如底部 Footer 的修改,菜单栏的修改等等。由于只是一些符合自己品味的优化,这里就不做详细说明了。

关闭了原有的博客站点

最初的时候脑子被门挤了,注册了个 euryugasaki.com 的域名,则根本不可能有人记得住啊。但是这个长得恶心的域名还是被我上线了三年左右的时间,一些我留下过痕迹的地方,都有这个域名在。

而恰好,这个域名还是在国内的服务商里购买的。保不准那一天挂了,就完蛋了。所以后来就注册了几个好记的域名:changkun.us。并且,我决定以后一直用这几个域名而再不更换了。

强制使用 HTPPS 访问本站

从去年开始,我就一直想要将整个博客部署成 HTTPS 站点,当时也只是随便一搜发现证书还得花钱,对于我这种个人网站,是很不地道的。

直到最近,几经周折,总算找到一个比较满意的证书提供商,StartSSL

制作证书非常方便,假设在 /etc/nginx/ssl/ 目录下:

1
$ sudo openssl req -newkey rsa:2048 -keyout server.key -out server.csr

期间会询问国家名CN、省份、城市、组织名、Common Name(域名)、邮箱,如实填好。最后的 challenge password 和 optional company name 不填。然后把生成的 csr 文件中的内容提供给这个网站,网站就会提供一个 .crt 的文件,只需将这个文件放到同一目录,然后将 server.key 中的密码给去除:

1
2
$ sudo mv server.key server.key.close
$ sudo openssl rsa -in server.key.close -out server.key

再到 Nginx 中配置好证书就能获得 HTTPS 的访问了:

1
2
3
4
listen 443;
ssl on;
ssl_certificate /etc/nginx/ssl/changkun.crt;
ssl_certificate_key /etc/nginx/ssl/changkun.key;

绿色的小锁☺️。

不过一旦启用了 HTTPS,就会将原本站点的 HTTP 访问停止,这时候,可以配置一个转发:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# 将所有 http 访问强制跳转到 https
server {
        listen 80;
        server_name changkun.us www.changkun.us;
        rewrite ^(.*)$ https://$host$1 permanent;
}
# 将 ip 默认访问强制跳转到域名访问
server {
        listen 80 default_server;
        server_name _;
        rewrite ^ https://changkun.us;
}

从 GitHub 迁移到自己的服务器上

说实话,写博客的人总归是希望有人能够看自己的文章的。我当然也不例外。博客自从搬到 GitHub 上后,搜索引擎就再也没能搜到我的新站点了(当然,还有一个原因就是 Github Pages 的服务绑定自己的域名就没办法使用 HTPPS 了)。

究其原因就在于 GitHub 屏蔽掉了诸如百度等搜索引擎的爬虫,使得他们无法得知我的新站点了。终于还是搬出来好了。也就有了现在的服务。

搬迁出来并不是随便这么一般,由于 Hexo 会通过 Git 部署,所以还需要让服务器成为一个 Git 服务器,但这还不够,因为当 站点文件部署到了服务器后,还需要自动将其同步到公开访问的 Nginx 目录下,所以还需要用 git hooks来实现自动化部署。

第一步:安装 Git

1
$ sudo apt-get install git

第二步:创建 git 用户,专门管理 git 服务

第三步:登录到 git 用户,配置 pub key,避免hexo d时的密码输入

1
2
$ su git
$ ssh-keygen

第四步:初始化 Git 仓库,假设放在 /home/repo/blog.git

1
2
3
$ sudo mkdir /home/repo/blog.git
$ cd /home/repo/blog.git
$ sudo git init --bare blog.git # 创建裸库,没有工作区

第五步:配置 git hooks

1
2
3
4
$ cd /home/repo/blog.git/hooks
$ echo '#!/bin/sh' >> post-receive
$ echo "git --work-tree=/path/to/your/hexo --git-dir=/home/repo/blog.git checkout -f" >> post-receive
$ chmod +x post-receive

第六步:更改目录权限

1
$ sudo chown -R git:git blog.git

第七步:禁用 git 用户登录,修改 /etc/passwd 中的 git 相关

1
git:x:1001:1001:,,,:/home/git:/bin/bash

改为

1
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

接下来就可以在 _config.yml 中的 deploy 中更改 repo 的地址了:

1
git@changkun.us:/home/repo/blog.git