<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Hrgrace</title><description>记录生产与生活</description><link>https://hrgrace.top/</link><templateTheme>Firefly</templateTheme><templateThemeVersion>6.16.8</templateThemeVersion><templateThemeUrl>https://github.com/CuteLeaf/Firefly</templateThemeUrl><lastBuildDate>2026年11月2日 22:47:23</lastBuildDate><item><title>开张：为什么又搭了一个博客</title><link>https://hrgrace.top/posts/hello-hrgrace/</link><guid isPermaLink="true">https://hrgrace.top/posts/hello-hrgrace/</guid><description>折腾过不少平台，最后还是回到自己的域名和一台小服务器上。说说这一回的想法。</description><pubDate>Wed, 28 Oct 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;写博客这件事，我大概来回折腾过三四次。每一次都从”这次一定坚持”开始，然后停在第三篇。&lt;/p&gt;
&lt;p&gt;这次不太一样的地方在于，我不打算把它做成一个纯粹的输出渠道，而是当作自己的一块地：
&lt;strong&gt;公开的部分用来记录，私有的部分用来干活。&lt;/strong&gt;&lt;/p&gt;
&lt;section&gt;&lt;h2&gt;为什么要自建&lt;a href=&quot;#为什么要自建&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;用现成的平台写东西，省事，但总有些别扭：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;内容不在自己手里，平台一调整你就得迁&lt;/li&gt;
&lt;li&gt;想加一点自己的小功能，就被框架限制住了&lt;/li&gt;
&lt;li&gt;域名和样式都不由自己说了算&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;自建的代价是要自己维护一台服务器。考虑到手头本来就有一台常年吃灰的小机器，
这个代价其实可以接受。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;打算写什么&lt;a href=&quot;#打算写什么&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;大致分两类：&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;生产&lt;/strong&gt; —— 工作和技术上的东西。踩过的坑、读过的源码、做过的小工具。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;生活&lt;/strong&gt; —— 读的书、走过的路、偶尔冒出来的想法。&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;写得会比较随意，不追求成体系。能把当时想清楚的事记下来，就算达到目的了。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;站点是怎么搭的&lt;a href=&quot;#站点是怎么搭的&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;整站用 &lt;a href=&quot;https://astro.build&quot; target=&quot;_blank&quot;&gt;Astro&lt;/a&gt; 生成纯静态页面，原因是服务器带宽只有 2 Mbps，
动态渲染那套在这里不划算。文章用 Markdown 写，改完提交就能发布。&lt;/p&gt;&lt;p&gt;具体的技术细节，我另开一篇展开。&lt;/p&gt;&lt;/section&gt;</content:encoded></item><item><title>2 核 2G 的小机器能跑多少东西</title><link>https://hrgrace.top/posts/small-server-notes/</link><guid isPermaLink="true">https://hrgrace.top/posts/small-server-notes/</guid><description>带宽只有 2 Mbps 的入门级云主机，也足够撑起一个博客加一套私有工具。记录一下我的取舍。</description><pubDate>Tue, 27 Oct 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;手头这台云主机是标准的入门配置：&lt;strong&gt;2 核 CPU、2 GB 内存、40 GB 系统盘、2 Mbps 带宽&lt;/strong&gt;。
按现在的标准不算宽裕，但用来跑一个个人站点绰绰有余——前提是选对东西。&lt;/p&gt;
&lt;section&gt;&lt;h2&gt;先认清瓶颈在哪&lt;a href=&quot;#先认清瓶颈在哪&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;很多人拿到小机器第一反应是”内存不够”，其实在我这个场景里，&lt;strong&gt;真正的瓶颈是带宽&lt;/strong&gt;。&lt;/p&gt;&lt;p&gt;2 Mbps 换算下来每秒只有 256 KB 左右。这意味着：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;一张未经压缩的手机照片（3 MB）需要大约 12 秒才能传完&lt;/li&gt;
&lt;li&gt;如果一篇文章里有 5 张这样的图，页面的总传输时间会超过一分钟&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;结论很直接：&lt;strong&gt;公开内容必须尽量小，而且要能被缓存住。&lt;/strong&gt;&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;三条原则&lt;a href=&quot;#三条原则&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;section&gt;&lt;h3&gt;1. 公开内容静态化&lt;a href=&quot;#1-公开内容静态化&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;博客用静态生成器输出纯 HTML，服务器只负责把文件发出去。
没有数据库查询、没有模板渲染，CPU 基本闲着，也就不存在”被刷爆”的问题。&lt;/p&gt;&lt;p&gt;静态站还有一个额外好处：它的攻击面几乎为零。没有登录、没有表单、没有运行时，
能出问题的地方比动态站少一个数量级。&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;2. 图片压缩并交给 CDN&lt;a href=&quot;#2-图片压缩并交给-cdn&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;图片是带宽杀手。做法是：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;统一转成 WebP，长边限制在 1600px 以内&lt;/li&gt;
&lt;li&gt;上传到对象存储，由 CDN 分发，源站完全不参与图片传输&lt;/li&gt;
&lt;li&gt;HTML 里引用 CDN 地址&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;这样 2 Mbps 的出口只需要承担最轻的那部分流量。&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;3. 私有功能放后面，且必须加认证&lt;a href=&quot;#3-私有功能放后面且必须加认证&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;私有工作台和公开博客在流量特征上完全不同：前者只有我一个人用，并发可以忽略不计。&lt;/p&gt;&lt;p&gt;所以私有部分可以放心用稍微重一点的东西，但认证一定要做在&lt;strong&gt;最外层&lt;/strong&gt;——
在反向代理这一层统一拦截，而不是指望每个应用自己把门看好。
后面新增工具时，也不用再逐个改造。&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;内存怎么分配&lt;a href=&quot;#内存怎么分配&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;2 GB 内存要精打细算。我的预算大致是这样：&lt;/p&gt;

&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;用途&lt;/th&gt;&lt;th&gt;预估占用&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;系统 + 容器运行时&lt;/td&gt;&lt;td&gt;250 MB&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;反向代理&lt;/td&gt;&lt;td&gt;60 MB&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;统一认证&lt;/td&gt;&lt;td&gt;150 MB&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;门户与工具&lt;/td&gt;&lt;td&gt;300 MB&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;数据服务&lt;/td&gt;&lt;td&gt;60 MB&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;留白&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;约 1 GB&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;关键是那条”留白”。小机器上最忌讳把内存吃干净，一旦某个进程内存涨上去，
触发 OOM 被杀是小事，连累整机就麻烦了。&lt;/p&gt;&lt;p&gt;再有就是&lt;strong&gt;一定要配 swap&lt;/strong&gt;，哪怕只有 2 GB。它不解决性能问题，
但能在内存瞬时冲高时保住系统不崩。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;小结&lt;a href=&quot;#小结&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;小机器的核心思路就一句：&lt;strong&gt;把重的东西挪走，把能静态的静态化，把必须动态的关进认证后面。&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;配置不高不代表做不成事，只是每一份资源都要想清楚花在哪里。&lt;/p&gt;&lt;/section&gt;</content:encoded></item><item><title>十月的几件小事</title><link>https://hrgrace.top/posts/october-little-things/</link><guid isPermaLink="true">https://hrgrace.top/posts/october-little-things/</guid><description>换了一条通勤路线、读完两本书、开始记流水账。一些零碎但值得留下的记录。</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;这个月过得不算轰烈，但回头看还是攒下了一些东西。记性越来越不可靠，还是写下来比较安心。&lt;/p&gt;
&lt;section&gt;&lt;h2&gt;换了一条路&lt;a href=&quot;#换了一条路&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;原本的通勤路线要换乘两次，早高峰挤到怀疑人生。月初试了另一条：多走十分钟，
但只换乘一次，而且有一段沿河的步行。&lt;/p&gt;&lt;p&gt;十分钟换一个不被人挤的早上，我觉得很值。&lt;/p&gt;&lt;p&gt;顺带发现河边有一排银杏，这个月刚黄。天气好的时候会停下来站一会儿。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;读完了两本书&lt;a href=&quot;#读完了两本书&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;《置身事内》&lt;/strong&gt; —— 讲地方政府在经济里的角色。之前一直觉得财政、土地这些东西离自己很远，
读完才发现很多现象都能对上号。作者的表述很克制，没有把结论喂给你，这点很喜欢。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;《克拉拉与太阳》&lt;/strong&gt; —— 石黑一雄。读的时候一直有种钝钝的难受感，
看完好几天没缓过来。克拉拉那种”尽力去理解人类却始终差一点”的视角，
比任何直白的悲伤都更让人不舒服。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;开始记流水账&lt;a href=&quot;#开始记流水账&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;这个月开始用记账工具记录日常开销。不是为了省钱，主要是想搞清楚
&lt;strong&gt;钱到底花到哪儿去了&lt;/strong&gt;。&lt;/p&gt;&lt;p&gt;记了三周，最大的发现是：零散的小额支出加起来比想象中多得多。
一杯咖啡、一次外卖、一个临时起意的快递，单笔都不心疼，加起来一个月够买台新键盘。&lt;/p&gt;&lt;p&gt;年末想试着做一份完整的花销复盘，到时候如果整理得像样，就发到这里来。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;一件没做成的事&lt;a href=&quot;#一件没做成的事&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;本来计划每周跑三次，实际只做到了一次。&lt;/p&gt;&lt;p&gt;不打算给自己找理由，下个月继续。&lt;/p&gt;&lt;/section&gt;</content:encoded></item></channel></rss>