距离微软正式发布.NET 8.0已经有一段时间,这也是新的LTS(长期技术支持)版本,这个版本更新了多个新的特性,并且提升了性能,似乎每一代框架发布总是能比上一代提升不少性能。近期抽空将本网站平台适配到了.NET 8.0,暂时没有发现什么Breaking Changes,一切很平滑,除了升级到.NET 8.0外,还对以下特性进行了修改: 1. 软件层面 1.1 验证码模块 验证码(CAPTCHA)又称全自动区分计算机和人类的图灵测试,之前本站验证码使用了两套:一套是Edi Wang开发的图形化验证码,主要用在评论发布页面;另一套是Google的reCAPTCHA,主要用在联系表单。但是这两套验证码都存在问题,其中Edi Wang的图形验证码使用了传统的数字字母图片,为了避免OCR还加了变形扭曲,在Web 2.0兴起的年代,这种方法足够抗击机器人和爬虫的不法攻击,随着人工打码平台和 …

博客一直使用谷歌分析(Google Analytics)作为流量统计分析平台,随着大家对隐私的重视,尤其是欧洲通用数据保护条例(GDPR)的颁布,谷歌分析的使用就有必要征求用户的同意,本博客自改版之后在隐私条款处已经说明使用了谷歌分析,并且在Cookie设置处也将允许谷歌分析的权限交给用户,经过一年多的运行发现存在相应的问题,最主要的是如果本博客访问的用户不设置Cookie,这也是大多数情况,一般博客右下角的Cookie提醒是可以忽略的,那么统计必然不准确,那么谷歌分析就失去了参考价值,好在由于全站套用了Cloudflare CDN,其中Cloudflare基础版(Free Plan)提供了一个简单的流量分析模块,让自己也大概能够窥探自己博客的流量情况。 为了能够更好的得到博客热门文章、访问者设备类型、设备分辨率这些信息以供以后改进博客内容和用户体验,同时兼顾用户隐私,决定尝试使用 …

早期电信家用宽带支持IPv6的时候,我就尝试通过PPPoE拨号获取原生(Native)IPv6,一直使用正常,唯一遗憾就是由于当时IPv6刚刚起步,所以大部分支持IPv6的网站延迟都比较高,相应的访问速度比较慢,经过这几年发展国内IPv6业务日趋成熟,延迟和速度都有了较大提高,新的计算机、移动设备等都能较好的支持IPv4和IPv6双栈(Dual-Stack)访问。 近两年开始出现部分网站访问卡顿、应用无法加载的情况,经过调查发现这些网站和应用使用了IPv6的访问方式,极大影响了浏览体验,于是我决定先暂停IPv6的解析(DNS仅返回A记录)以缓解卡顿的问题,不过后来搜索网络我终于找到了问题的根源,彻底解决了,在这里把解决的过程记录下来以备忘用,如果读者想快速解决问题的话建议直接跳转到第2节 配置路由器TCP MSS。 1 配置返回IPv4 Only DNS服务器 可能有人说配置返回IPv4 …

很长时间没有更新网站内容,不过还是抽出时间对网站架构进行了升级。 主要升级点 将网站平台由.NET 6.0迁移至.NET 7.0,这次迁移是平滑的,没有Break changes。 数据库也升级至PostgreSQL 15。 之前网站是基于Docker容器部署的,后来了解到Podman这个最佳替代,于是将Docker部署迁移至Podman部署。 编写了网站引导脚本(Boot Script),在启动网站程序前执行自动化测试检测外部环境设施(数据库、消息队列、邮件系统、传输代理等)是否正常,测试通过后拉起网站程序。 全站迁移至Cloudflare CDN。 需要特别提出的 使用Podman部署,其好处是去中心化,Podman不像Docker一样有个守护进程,守护进程崩溃了所有Docker容器也会崩溃,Podman是Rootless的相比较而言会更加安全(Docker也有Rootless部署方 …


2021年以前发表的部分文章已经被存档到,这些文章将不再进行更新维护。