12月01, 2023

日常安全防护-假如我的电脑丢了

最近很多公司爆料各种事故,比如:阿里的、滴滴的等等。对于外界,事故的『真正』原因肯定是不知道的。但出于 IT 行业,我们的日常行为、作法等都是息息相关的。

有一天,我就在想,如果我的电脑丢了会不会影响很大?所以基于这个点,我往深里去想了想,并且记了下根据对的场景我是如何做的。

阅读全文 »

07月25, 2022

SPA nginx try_files 深度优化

前言

上周有幸帮朋友解决一个线上用户端缓存不更新的问题。问题的表现在项目某次发版后,用户端访问页面提示 JS 报错。报错表明是 JS 返回的是 HTML 代码。

经过一番查看后,发现是用户端在发版的时候有访问过,而像 app.afds320.js 这些 JS 还不存在。命中了 localtion / { try_files } 规则。再加上 CDN 上有些默认的配置,给该 HTTP status 200 的文件加了 cache-control: max-age=7d 的缓存时间。导致用户端只要不强刷新或清缓存,这个文件就在7天内一直有问题了。

这个问题其实就是缓存配置的不合理导致的问题,我们应该适当的利用浏览器缓存、CDN 缓存来优化我们的项目。

友情提示:以下所有内容只是本人的一些测试的结果,并不一定正确。期待你的指正,谢谢。

阅读全文 »

06月25, 2022

使用 OpenResty + Consul 实现动态负载均衡

前言

在之前 GitHub Actions CI/CD 里提到过,博客要自动在 Pull Request 时生成基于 PR ID 的域名。使用域名更加的隔离,比如 Cookie 、缓存等。之前在 @MIP 时实现过类似静态化的站点:

MIP CI/CD

静态的之前的 Jenkins + Nginx CI/CD 也提到过,其实就是使用 Nginx server_name ~^([\w-]+)--(\d+)\.pr\.ci\.org$; 正则域名即可。

前端小武博客是 Node.js 动态的。这需要使用 Nginx 反向代理,把访问域名动态的转发到对应的 Node.js 应用中。但这个添加转发需要重启 Nginx 。这个问题一直困扰着我。直到 @宇桥 在2020年使用 K8S 实现了动态加载配置。但我不会,并且 K8S 对我来说太重了。于是这个问题就一直搁置了。

直到偶然的机会,看到了又拍云的 Slardar 眼前一亮。看了下项目,发现使用她需要进行二次加装。并且她的功能太过全面(冗余)。于是我没事就在研究,如何自己实现一个动态负载均衡,重点是不需要 Nginx Reload 。

阅读全文 »

06月04, 2022

拥抱 GitHub Actions

工作这么多年以来,种类 CI/CD 工具都有些接触。但唯独最青睐的还是 Jenkins ,她的灵活性、定制化、插件覆盖度等都是一度好评。

我有多个服务、站点,虽然没什么流量,但一直做为我自己调研的目标和学习的途径。在实际使用 Jenkins 时,也屡试不爽。但随着服务数量的增加,是越来越不好维护。当然,这里并不是说 Jenkins ,因为跟我本身能力有很大关系,没有好与不好,只有合适不合适。

阅读全文 »

05月28, 2022

小黑,你好

小时候家里就一直有养猫。那时候在农村,家里的门窗都不严,经常会有老鼠。再加上那时候家里都有屯粮的习惯,不讨厌猫的都会养猫,主要是抓老鼠。我记得我小时候家里就一直有养猫,我现在还能记起几只猫的名字:黄黄、黑黑、花花。但由于很多人不喜欢猫,又迫于老鼠的危害,就会在粮食旁放老鼠药。而中毒后的老鼠被猫吃掉,猫大概率会死掉。记忆中我家的猫都是因为这个原因死的。从小我就喜欢猫,直到现在也是。

阅读全文 »

04月16, 2022

本次换工作的感悟

今夜翻来覆去,辗转反侧不能入寐,想想这次裸辞到现在找工作的时间,竟然看开了许多,曾经我有一个梦,我梦想着可以“造福人类”,但梦想在现实的照耀下显的是那么的模糊,我不得不去追逐现实的脚印,这可能迷失了自我,但当我最近爬到山顶时发现,原来自我是被“假我”给“捆绑”起来了,我需要突破自我,这使我看清了自己,也看清了自己的路。

而最近找工作,我也自己投了简历,也找过猎头大大,也有朋友内推,甚至我还面了我的老东家 Huobi.com ,然后发现世界还是很美好的。这里也非常感谢那些为我工作担心和帮助的家人和朋友们。

阅读全文 »

03月15, 2022

博客架构优化 v5.x

前端小武博客是于 2011-08-09 注册的域名,也经历了 DIV+CSS 静态页面、ASP 动态、ASP 静态化、IIS 伪静态的初期版本,后来自学了原生 PHP 、CodeIgniter ,再到现在的 Node.js 版本(ThinkJS 1.x 和 2.x 、Firekylin ),期间经历了大大小小几十个版本迭代,真的算是饱经沧桑,也学到了很多技术,感谢我的博客。

由于各种原因,到现在的版本很久没有动过了,最近在老家休息(其实是无工作状态..),想起来折腾下我的博客,并把一些优化点应用上。

阅读全文 »

03月10, 2022

使用 Visibility 和 onLine 优化用户体验

提到 Visibility 和 onLine 可能都会以为这不就是几个 Web API 吗?这跟用户体验有什么关系的?那么结合下以下场景:

  1. 在浏览实时行情数据时,电脑长时间没动休眠了,等半天过去后再打开电脑,行情数据会显示最新行情
  2. 在看最新头条新闻评论时,切换离开了当前浏览器标签页,过段时间后再切换回当前新闻标签页,会加载最新的评论
  3. 在播放动感小视频时,网络断了,等一会网络联通后视频接着播放
  4. ...

以上的场景如果处理不当,其实不会影响用户的主流程,但如果处理的非常细腻,那么用户的体验也真的是纵享丝滑。

阅读全文 »