Skip to main content

Command Palette

Search for a command to run...

Hello World

Updated
Hello World

0.前言

  2024年六月是一段特别的日子。离职、毕业、旅行,各种花花绿绿的计划排满了整个google calendar。在离职前后就有过想重新搭一个博客的想法,但因为各种乱七八糟的事情完成日期一直拖到了26号这样,虽说过程不是很难,但也踩了不少小坑。第一篇博客就用来记录一下这个新bolg plateform搭建时的心路历程吧。

1.需求分析

  虽说大学时正经的帖子没写过多少,但是搭建博客还是花了不少的功夫。wordpress、hexo、jekyll都上线把玩过。wordpress有点过于沉重了,不仅访问速度慢,并且似乎一直存在一些插件安全问题。

  hexo和jekyll这种静态的安全问题不太用考虑。大一的时候玩过hexo,那个时候还没有类似github pages这种东西,直接挂载服务器,配置一些新组件和修改新增博客的时候有点坐牢,之后也就不了了之了,记录还是多用语雀和notion。

  jekyll,大约是在大三的时候接触的,通过github action中的自动化脚本可以轻松的在push以后自动推送,配合vscode中vim用的也还是挺爽的,但是总觉得静态博客没有管理后台还是差了点意思。并且因为GFW&&国内政策的问题,搭建小站需要各种流程,很是繁琐。

  根据上面的一些问题大概总结了这次搭建博客平台的一些需求点:

  • 无需审核备案

  • 流量安全

  • 动态博客

2.资源整理

  • 阿里云 上海 2gb ram 2 core ecs

  • 阿里云 ekreke.xyz

  • RackNerd Los Angeles 2gb ram 1 core VPS (新购入)

  • cloudflare account (cloudflare 下简称cf)

  • 人生中宝贵的3天

3.解决方案

无需审核备案需求方案

  对于备案这种墙内问题,以前尝试通过端口转发+nginx反代隐藏真实80端口,但是不仅需要一台空闲的机器,而且还会有后续的审核风险,这次干脆一了百了选择墙外服务器来解决。(端口转发+反代规避备案教程类似:https://www.xiaoweigod.com/network/1566.html)

流量安全需求方案

  流量安全主要针对的就是一些恶意流量攻击的问题。这个部分主要就外包给cf来做了,还是免费。cf的提供的功能非常全面,可以进行托管省时省力省心,唯一的缺点就是大陆GFW会对某些托管的ip进行封锁,拨测ping值感人。关于更多cf相关内容可以详见此podcast(https://www.xiaoyuzhoufm.com/episode/6645a7b9fbc01d7f367e6da3)

动态博客方案

  这部分无非就是套架子,都大同小异。以前自己也写过类似的博客系统小玩具,这次为了方便偷个懒还是直接套用了。google了一下 top 10 blog framework , 比较中意的就是ghost。不过实装过后会发现在大陆访问的时候会加载一些被墙的静态资源。并且会出现莫名其妙的http&https混合内容问题。看了一下论坛issues,也并没有解决,遂弃。到达南京后在lvan chen的力推下整上了typecho。

4.搭建步骤

  1. 解析域名:因为以前的域名是阿里云购买,担心直接指海外vps不安全遂放在cf上进行托管。cf的托管方式也很有意思,不是直接进行域名转移,而是在阿里云上更改解析权威域名的dns服务器域名。之后在dns板块进行配置解析。

  2. 服务部署:此处可参考typecho官方文档。mysql直接docker run一下即可。

  3. ssl证书/nginx配置:证书可以手动进行配置,参考(http://chenk.vip/index.php/archives/133/) 也可以使用certbot(https://certbot.eff.org/) nginx配置一下服务的端口即可。

5.Hello World!!!

  在查ghost的issues的时候偶然看到这么一条评论:其实技术选型并不重要,博客最终要的还是内容。自认为还是一个想法挺多的人,但是说来惭愧大学四年并没有积累太多的文字。文字积累的最多的还是在公司内网的平台上,大多也是一些简短的总结和技术设计,随着离职也不复存在了。随着年龄的增长,越来越觉得记录是一个很有必要的事情。   粗浅的分析一下,人对于一件事的观点变更大概有以下三种模式:

  1. accept A

  2. A -> B

  3. A -> B.. -> A

  我并不觉得任何单一的观点具有可记录的意义。就像陈皓老师在一期podcast中说的一样,单个的点不是知识,串联起来的过程才是知识、经验,才是我们真正需要关注的东西。For example, 如果分别在10 , 18 , 22岁的时候分别问我大陆有没有言论自由,我觉得我会分别回答有、没有、有。一个类似ABA Problem的过程 :)(https://en.wikipedia.org/wiki/ABA_problem)实际上到底有或没有并没有什么可以记录的价值,但如果细究如上每一段时间社会的变革,个人的经历历程,就能找到一个状态变更的why。这是常常被人所忽视的,也是我觉得最为值得和必要记录的--experience。   有点扯远了。。anyway , 希望从现在开始能以每周一更的频率更新下去,记录一些有趣的事情。

(全文完)

More from this blog

Go 隐式接口与模板方法

前言 今天在使用testify框架写单元测试的时候有这样一个需求: 对于一个方法来说,可能会有很长的上下文链路数据。 按照正常的单元测试流程,这个时候我们需要按照接口的逻辑来事先mock好原始未处理的数据,并且定义最终想要的数据结果。定义好不同的test case 尽可能的覆盖到每一个if else,才可以通过后续的ci 流程。 对于一些特殊的case,我们需要一些特殊的操作: 测试前置处理-> 运行测试代码 -> 测试后处理 需要在测试前后对数据进行预处理,如:事先存入一些数据,测试后再删除...

Nov 13, 2025
Go 隐式接口与模板方法

一次Nginx 403 的问题排查

前言&问题复现 参与了一个内部效率提升项目(边角料项目)后要发到内部的测试机器上。内部的测试机器上并没有配置集群,没有一个专门的ingress或者说是网关来处理请求分发。 并且这个测试机器属于多个部门,导致机器环境很复杂,一台物理机安装有多个nginx,有直接host安装的,也有在容器上运行的。 由于这是一个内部项目,没有必要专门部署一个minio,but 项目需要上传文件,所以就直接保存在server的目录下,简单配置了一下nginx的配置,配置如下: location /static...

Oct 18, 2025
一次Nginx 403 的问题排查

[Learn With Agent] JSX & React Components

前言 这是Learn With Agent 的第一篇博客,这个系列(不知道有没有后续了)是想通过agent辅助进行快速的学习(过概念)掌握一些相关的知识。之后再通过agent辅助开发,应该也能做出来个7788。对于AI还有很多思考,另起一个博客再说吧就。 因为网络和经费原因,这里使用的是CC+GLM 4.6 & Gemini 系列。🈚️广,文字为百分百人类手敲&传统CV大法。 JSX JSX是React生态中占据很重要的部分,JSX是一种语法拓展,它可以允许用户在js中写类似html的标签结构...

Oct 9, 2025
[Learn With Agent] JSX & React Components

提示词以及常见优化技巧

prompt 种类 system : 系统提示词用于统一设定当前会话下ai的行为,例如设定ai的行为、语气、风格或限制。用户不会显式观察到系统提示词,但是会影响到用户和ai的后续对话。 user : 这是用户实际向ai提出的问题,这是对话的起点。 assistant: 这是ai对于用户问题的回答,通常也会被添加到上下文中,供下一次对话进行参考,所以也属于prompt的范畴。 prompt 格式 标准格式: <Instruction> 问答格式: <Question>? 零样本提示 ...

Aug 14, 2025
提示词以及常见优化技巧

Http 长连接 & 短连接详解

网络连接基础 TCP/IP TCP/IP,是几乎所有互联网通信的基石。HTTP、WebSocket 和 常见的RPC框架尽管功能各异,但都运行在应用层,并从根本上依赖传输层的 TCP(传输控制协议)来实现可靠的、面向连接的数据传输 。 TCP 的核心职责是确保数据包从发送端到接收端可靠、按序且无损地传输 。这包括序列号、确认、流量控制和拥塞控制等机制。在网络层,IP(互联网协议)负责网络路由和寻址,使数据能够跨越不同网络到达其目的地 。现代操作系统普遍内置并管理 TCP/IP 协议栈,从而为应用...

Jun 13, 2025
E

Ekreke's Blog

11 posts