许多读者是因为某一篇文章关注到这里,如果你喜欢我的表达方式,或许你也会对某一类或几类问题感兴趣。所以我将最近几年的网站内容,以提问题的方式汇总在下面,分类的方式暂时还是以传统的话题形式展开,比如聊聊:
“不一样”的 Nginx、如何制作和使用 HTTPS、Node 实践、Go 实践、Traefik 实践、玩玩 AI 模型、前端开发的细节与体验、Docker 和 K8S 相关常见问题、Linux 基础操作、开发者体验、SSG 技术相关、CMS / BLOG 程序相关、数据库和数据分析相关、向量数据库。
软件仓库、代码仓库、质量管理相关基础技术设施的话题:GitLab、Gogs 以及 Gitea、CI/CD、Harbor & Distribution、Nexus、Composer、SonarQube、Vault、ELK、Prometheus、MinIO、Syncthing、邮件网关。
以及如何搭建和使用一些软件:Confluence、Mastodon、Outline、Phabricator、NextCloud、Flare、CMS / BLOG / BBS、RSS、Wiki、以及使用容器对软件工具进行封装和其他一些有趣的事情。
不一样的 Nginx
我希望能够通过深入浅出的方式,来介绍一些借助 Nginx 四两拔千斤的玩法。
- 如何搭建高性能的二维码渲染服务:
- 《借助 Docker 来搭 Nginx 的积木:快速实现高性能二维码服务》【2022.08】
- 《使用 Docker 和 Nginx 打造高性能二维码服务(二)》【2021.01】
- 《使用 Docker 和 Nginx 打造高性能的二维码服务》【2018.10】
- Nginx 模块化应用
- 《从封装 Nginx NJS 工具镜像聊起》【2021.01】
- 《Nginx 模块系统:前篇》【2021.03】
- 《如何在容器时代高效使用 Nginx 三方模块》【2021.03】
- Nginx 加解密
- 《编写 Nginx 模块进行 RSA 加解密》【2021.08】
- 《使用 Nginx NJS 实现高性能的 RSA 加解密服务》【2021.11】
- 《使用 Docker 和 Nginx NJS 实现 API 聚合服务(前篇)》【2021.03】
- 如何搭建高性能且美观的索引服务:《使用 Docker 和 Nginx 实现简单目录索引服务》【2018.12】
- 《如何针对 Nginx 为基础的服务进行容器优化》【2019.04】
- 容器中使用的一些小技巧:《Nginx 基础用途拾遗》【2020.05】
- 《使用 Nginx 构建前端日志统计服务(打点采集)服务》【2020.11】
- 《使用 Nginx 容器为 Traefik 配置高性能通用错误页面》【2020.12】
- 《使用 Nginx 提供 DDNS 服务(前篇)》【2021.07】、《使用 Nginx 提供 DDNS 服务(中篇)》【2021.08】
如何制作和使用 HTTPS
时至今日,HTTPS 不单单是浏览器上的一把锁,更是许多软件通讯、开发过程中的必需品。
- 如何快速获取免费的 HTTPS 证书:
- 《使用 Docker CertBot 获取 SSL 证书》【2018.08】
- 《如何制作和使用自签名证书》【2021.02】
Node 实践
轻量高效的 Runtime,丰富友好的开发者生态。
- 《关于MacOSX使用NPM的姿势补充》【2015.05】
- 高性能解码服务:《使用 Docker 和 Node 快速实现一个在线的 QRCode 解码服务》【2018.12】
- 快速生成模版图片:《使用 Node.js 生成方便传播的图片》【2019.07】
- 《使用 Node.js 定制你的技术雷达:上篇》、《使用 Node.js 定制你的技术雷达:中篇》【2020.09】
- 《使用 Docker 和 Node 搭建公式渲染服务(前篇)》、《使用 Docker 和 Node 搭建公式渲染服务(中篇)》、《使用 Docker 和 Node 搭建公式渲染服务(后篇)》【2021.04】
- 《借助 WASM 进行密集计算:入门篇》【2021.11】
- 《M1 芯片 Mac 上更好的 Golang 使用方案》【2022.05】
Go 实践
云原生时代的亲儿子。
- 《使用 Golang 正确处理五大互联网注册机构的 IP 数据》【2022.07】
- 《使用 Docker 搭建属于你自己的 Go Playground》【2022.07】
- 《搭建可维护的 Golang 开发环境》【2022.07】
- 《深入浅出 Golang 资源嵌入方案:前篇》【2022.01】
- 《深入浅出 Golang 资源嵌入方案:go-bindata篇》【2022.01】
- 《Golang 多版本管理》【2021.12】
- 《使用 Docker 和 Golang 快速上手 WebAssembly》【2021.11】
- 《借助 WASM 进行密集计算:入门篇》【2021.11】
Traefik 实践
Traefik 是一个很好的开源软件,可以用于业务多个阶段的服务解耦、以及性能水平扩展,甚至可以用来做临时的 Waf。此外,如果你想快速获取一个和生产环境保持一致的多站点开发环境,使用 Traefik 也可以极大简化管理成本。
Traefik v2
- 基础使用,以及旧版本迁移《Traefik 2 使用指南,愉悦的开发体验》【2020.01】
- 《配置基于Traefik v2的 Web 服务器》【2020.02】
- 使用配置文件参数简化冗长的配置《更简单的 Traefik 2 使用方式》【2020.12】
- 《Traefik 2 基础授权验证(前篇)》、《Traefik 2 基础授权验证(后篇)》【2020.12】
Traefik v1
- 一个完整的示例:《更完善的 Docker + Traefik 使用方案》【2018.08】
- 适用场景、基础配置:《使用 Traefik 的一些补充细节》【2018.09】
- 进行水平扩展,提升应用性能《使用 Traefik 提高 WebSocket 应用性能》【2018.09】
- 在群晖设备上使用:《在群晖上使用 Traefik》【2019.07】
前端开发的细节与体验
前端技术不仅仅服务于交互功能,也可以侧重内容的可阅读性。
- 如何优化网站在阅读器中的体验、以及网页打印结果:
- 《优化网站打印(阅读)模式》【2017.07】
- 前端性能优化实战:
- 《站点优化记录 - “页面响应性能优化思路”》【2018.10】
- 简洁的前端 Service Worker 缓存方案:《使用传统前端技术增强客户端缓存能力》【2018.10】
- 《站点优化日志(2020.12.06)- 网站前端优化》【2020.12】
- 简单的前端资源可高用方案:《简单策略让前端资源实现高可用》【2019.05】、《Webpack 动态资源路径方案》【2017】
- 回归传统的前端开发模式:《你的网站或许不需要前端构建》【2019.05】
- 前端跨域解决方案:《Nginx 基础用途拾遗 - 使用 Nginx 聚合不同站点内容》【2020.05】
- 容器化的前端静态站点提供健康检查:《Nginx 基础用途拾遗 - 配合 compose 轻松创建健康检查》【2020.05】
- 《构建易于扩展的前端统计脚本》【2015.03】
- 一般的网站访问性能优化策略:《天下武功,唯快不破》【2015.01】
Docker 和 K8S 相关常见问题
在享受 Docker 提供便捷的同时,如何规避或解决常见问题。
- 如何安装使用 Docker ?
- 《Ubuntu 18.04 基础系统配置 - 安装容器环境》【2019.04】
- 如何安装和使用 K8S ?
- 一般操作方案《简单的 Kubernetes 集群搭建》【2018.10】
- 更傻简单的操作方案《通过 MicroK8s 搭建你的 K8s 环境》【2019.09】
- 使用 Docker 一段时间后占用空间太大、删除 Docker 镜像后,存储空间依旧不释放的解决方案:
- 《清理 OSX 系统中的 Docker 容器、镜像与数据卷》【2018.07】
- 《提升 Docker Desktop For macOS 磁盘使用率》【2021.04】
- 为什么不推荐使用 dind 模式:
- 如何修改容器默认存储位置,及进行数据迁移:
- 《迁移 Docker 容器储存位置》【2019.07】
- 如何从零到一封装容器服务:
- 以老应用为例:《Ruby 应用容器封装踩坑记录(Lobsters)》【2020.03】
- 高性能 IP 服务:《阿里云 IP 地理位置库(淘宝IP库)实践(前篇)》、《阿里云 IP 地理位置库(淘宝IP库)实践(后篇)》【2020.10】
- 《从 DokuWiki 聊聊 PHP 应用容器封装》【2021.06】
- 《轻量的定时任务工具 Cronicle:前篇》【2021.12】
- 《向量数据库入坑:入门向量数据库 Milvus 的 Docker 工具镜像》【2022.09】
- 其他简单、无历史负担的应用封装,见其他文章。
- 基于容器,如何进行简单的应用性能比较:
- 《重定向的九种方案及性能比较》【2020.11】
- 容器中的应用网络不通?
- 《没能躲开的云服务容器网络问题》【2020.12】
- 如何基于三方镜像构建子镜像?
- 《从封装 Nginx NJS 工具镜像聊起》【2021.01】
- 如何优化镜像尺寸:
- 一般操作:《通过整合语句优化容器镜像》【2018.10】
- 进阶操作:《通过优化基础镜像来优化容器镜像》【2018.10】
- 细节讲解:《从定制 Ghost 镜像聊聊优化 Dockerfile》【2020.03】
- 更换更先进的镜像:《使用以语言为中心的容器基础镜像 distroless》【2021.10】
聊聊开发者体验
容易忽视掉的开发者的“体验”。
- 《更新Dash文档的小技巧》【2015.03】
- 《快速切换Mac设备的DNS配置》【2016.01】
- 使用服务发现模式进行开发的好处:《使用服务发现改善开发体验》【2018.06】
- 个人开发者怎么处理日志最简单:《个人开发者的服务器日志收集》【2018.06】
- 耗时的前端构建能否加速:《前端构建的一些事》【2018.06】
- 选择高频使用工具的一些观点《OSX 软件选择之编辑器》【2018.06】
- 一个基础的桌面开发环境:《磨刀不误砍柴,配置适合工作学习的桌面环境》【2018.09】
- 远程管理设备:
- 《远程管理 Mac OSX 设备》【2019.03】
- 远程映射方案:
- 《容器化 FRP 使用方案》【2020.10】
- 可以使用 API 调用的下载服务:《更好的 Aria2 容器化使用方案》【2019.04】
- 更简单的 GitLab CI 变量管理方案:《使用代码仓库管理 GitLab CI 变量》【2019.07】
- 《实时查看容器日志》【2020.11】
- 《在群晖上使用 VSCode(VS Code Server)》【2021.06】
- 我想灵活一些《使用 Nginx 提供 DDNS 服务(前篇)》、《使用 Nginx 提供 DDNS 服务(中篇)》【2021.08】
- 《用于本地开发使用的 DNS 方案》【2021.08】
数据库和数据分析
- 如何《使用 ClickHouse 处理离线半结构化日志》【201.11】
- 如何对 MySQL 云服务器进行数据迁移:《MySQL 云数据库物理备份本地恢复方案》【2021.10】
- 如何《快速上手 ClickHouse》 【2021.10】
- 《正确处理全球五大互联网注册机构的 IP 数据》 【2022.06】
玩玩模型
- 《使用 Docker 来运行 HuggingFace 海量模型 》【2022.05】
- 《用让新海诚本人惊讶的 AI 模型制作属于你的动漫视频》【2022.06】
其实都算 Linux 基础操作
-
服务器设置 SSH 免密登陆:《设置群晖 6.1 以及 6.2 使用证书免密登录》【2018.07】
-
设置应用进程守护:
- 《聊聊群晖的进程守护》【2018.06】
- 《Mac OSX 开机启动应用 (supervisor)》【2019.03】
-
使用 Node.js 编写小工具,提升操作效率:
- 进行文件去重、批量重命名:《如果不用 Node.js 写业务 - 辅助进行数据清理》、《如果不用 Node.js 写业务 - 辅助文件管理》【2018.08】
- 包装复杂调用:《如果不用 Node.js 写业务 - 柯里化外部操作》【2018.08】
-
系统配置:
- 《在笔记本上搭建高性价比的 Linux 学习环境:基础篇》【2022.06】
- 《Ubuntu 18.04 基础系统配置》【2019.04】
- 跨版本升级《服务端升级 Ubuntu 20.04 LTS 记录》【2020.04】
- 《抢先体验 Ubuntu 22.04 Jammy Jellyfish》【2022.04】
- 《轻量小巧的零配置 APT 加速工具:APT Proxy》【2022.06】
- 《使用容器搭建 APT Cacher NG 缓存代理服务》【2021.04】
- 《如何升级使用 apt 安装的软件包》【2020.02】
- 《如何更新容器镜像》【2020.02】
- 如何初始化磁盘等:《NUC折腾笔记 - Linux系统篇 - 系统进阶配置》【2021.01】
- 如何进行磁盘性能测试:《NUC 折腾笔记 - 储存能力测试》【2021.02】
-
日志分析:《日志分析处理:GoAccess 篇》【2020.12】
-
简单性能测试:《使用 WRK 和 Lua 脚本模拟真实场景》【2021.04】
-
《NUC 折腾笔记 - 安装 ESXi 7》【2021.06】
SSG 技术相关
使用静态网站生成(SSG)技术构建网站相比传统技术栈会有一些优势,==网站服务性能下限可以得到极大的保障==,搭配 CDN 使用也可以==降低非常多的服务器成本==,加上静态文件的特性,使得==网站安全性的下限也有了一些提升==。
- 为什么使用 Hugo 重构了这个网站:《使用Hugo重建站点》【2017.06】
- 使用 SSG 将网站架构简化后的好处:《网站架构简化》【2018.05】
- 使用 SSG 来生成高性能的静态接口:《使用 Hugo 生成 API 接口》【2018.09】
- 如何定制 Hugo 模版:《Hugo 跨版本升级》【2019.02】、《Hugo 跨版本升级(二)》 【2020.11】
- 介绍如何自动化的使用 SSG 工具写作:《使用 Markdown 自由地写博客》【2020.11】
CMS / BLOG 程序相关
- 为什么不再推荐使用 Ghost:
- 《将 Ghost 迁移 Hugo 背后的事》【2019.06】
- 《修理 Ghost 中文输入法的 BUG》【2020.01】
- 如何将 Ghost 数据迁出:《“Ghost 数据迁移”》【2019.06】
- 细节讲解:《从定制 Ghost 镜像聊聊优化 Dockerfile》【2020.03】
- 《让运行在 Docker 中的 Ghost 支持阿里云 OSS》【2020.03】
- 《使用 WordPress 快速打造个人 Wiki》【2019.06】
应用相关
Confluence
- 《使用 Docker 搭建 Confluence》【2019.03】
- 细节调优:《Confluence 容器化使用拾遗》【2019.04】、《容器化 Confluence 使用拾遗》【2019.04】
- 《使用 Docker 和 Traefik v2 搭建 Confluence 7.3》【2020.03】
Outline
- 《从零开始使用开源文档/Wiki软件 Outline(一)》【2021.09】
- 《从零开始使用开源文档/Wiki软件 Outline(二)》【2021.09】
Mastodon
- 《使用 Mastodon 搭建个人信息平台:前篇》【2022.01】
- 《使用 Mastodon 搭建个人信息平台:调优篇》【2022.01】
Phabricator
- 《使用 Docker 和 Traefik v2 搭建 Phabricator》【2020.02】
- 《Phabricator 切换使用 Bitnami 容器镜像》【2021.04】
NextCloud
- 《如何通过容器搭建稳定可靠的私有网盘(NextCloud)》【2020.09】
Flare
- 《Flare 制作记录:应用前后端性能优化》【2022.01】
- 《使用 Docker 搭建适用于 HomeLab 的书签导航》》【2022.02】
- 《从零开始搭建个人书签导航应用:Flare》》【2022.02】
CMS / BLOG / BBS
- 《使用 Docker 和 Traefik 搭建 WordPress》【2019.04】
- 《使用 Docker 和 Traefik 搭建 WordPress(Nginx)》【2019.04】
- 《使用 Docker 和 Traefik 搭建 Flarum 轻论坛应用》【2019.07】
- 《使用 Docker 和 Traefik v2 搭建 Flarum 轻论坛应用》【2020.03】
RSS
- 《使用 Docker 搭建你自己的 RSS 服务(FreshRSS)》【2019.01】
- 《使用 Docker 搭建你自己的 RSS 服务(stringer)》【2019.01】
- 《使用 Docker 搭建你自己的 RSS 服务(Miniflux)》【2019.01】
- 《使用 Docker 和 Traefik v2 搭建 RSS 服务(Miniflux)》【2020.02】
Wiki 相关
- 《使用 Docker 搭建你的Wiki(MediaWiki)》【2019.01】
- 《使用 Docker 搭建你的Wiki(MoinMoin)》【2019.02】
- 《使用 Docker 搭建你的Wiki(TiddlyWiki)》【2019.02】
- 《使用 Docker 搭建你的Wiki(DokuWiki)》【2019.02】
- 《从 DokuWiki 聊聊 PHP 应用容器封装》【2021.06】
小工具封装
- 《使用 Docker 封装 Python 小工具生成 GitBook PDF》【2019.05】
- “折腾笔记” MDBook 容器化方案。 https://suyang.wiki/
基础设施:软件仓库 & 代码仓库 & 质量管理
- 什么场景下会考虑建设私有化仓库:《代码仓库服务的那些事》【2018.06】
GitLab
- 如何将传统安装的 GitLab 迁移到容器环境?
- 容器环境设置,数据的备份和还原:《迁移 GitLab 数据到全新容器》【2018.09】
- 数据迁移后的额外操作:《GitLab 迁移之后的事情》【2018.09】
- 如何使用容器完整搭建 GitLab ?
- 《使用 Docker 和 Traefik 搭建 GitLab(前篇)》【2019.04】
- 公网实例的基础安全防护:《使用 Docker 和 Traefik 搭建 GitLab(后篇)》【2019.04】
- 《公网搭建 GitLab 安全拾遗》【2019.08】
- 我希望使用资源消耗更低的版本:《容器方式使用轻量的 GitLab 低版本》【2021.02】、《GitLab 14 轻量化运行方案》【2021.07】
- 我想试试中国定制版:《试用 GitLab 14 以及中国发行版:极狐》【2021.07】
- 如何定制 GitLab Runner?
- 《源码编译 GitLab Runner》【2019.08】
- 如何在不同部署场景中使用 HTTPS?
- 《如何配置 GitLab 使用 HTTPS》【2019.08】
- 如何进行日常维护?
- 《GitLab 简明维护指南(v2020.05)》【2020.05】
- 各版本升级地区,以及注意事项《GitLab 12 跨版本 13 升级》【2020.09】
- 如何进行 SSH 访问来源限制或负载均衡?
- 什么是 GitLab CI,它的发展历程是怎样的?
- 《聊聊 GitLab 的CI / CD 功能发展历程》【2021.02】
Gogs 以及 Gitea
- 《使用 Docker 和 Traefik v1 搭建轻量代码仓库(Gogs)》【2020.02】
- 《使用 Docker 和 Traefik v2 搭建轻量代码仓库(Gitea)》【2020.02】
- 《容器方式下的轻量仓库与CI 使用方案:Gitea + Drone 基础篇》【2021.02】
- 《使用容器方式编译无功能限制的 Drone CI》【2021.04】
CI/CD 相关
- 为什么要使用 CI/CD 技术: 《闲聊 CI/CD 场景价值》【2018.05】
- 使用私有 CI 构建 GitHub 仓库内容:《使用私有CI构建GitHub仓库》【2018.05】
- 使用 Node.js 来编写 CI 脚本《如果不用 Node.js 写业务 - 持续集成中的粘合剂》【2018.08】
- 《装在笔记本里的私有云环境:持续集成(上)》【2022.01】
Harbor & Distribution
- 《使用 Harbor 搭建私有 Docker 仓库》【2020.05】
- 《使用容器搭建简单可靠的容器仓库》【2021.04】
Nexus
- 如何进行 Nexus 的数据迁移:
- 《迁移 Nexus 软件仓库拾遗》【2018.10】
- 如何完整搭建一个几乎免打理的软件包仓库:
- 《使用 Docker 搭建私有软件仓库 Nexus 3》【2020.03】
Composer
- 《搭建高性能的私有 Composer 镜像服务》【2019.08】
- 《如何搭配 CI 系统使用 Composer》【2019.08】
SonarQube
- 使用 SonarQube 提升代码质量管理:
- 《相对现代化的把控前端代码质量》【2018.09】
Vault
- 使用端到端加密方案:《使用 Docker 和 Traefik 搭建 Vault》【2019.05】
ELK
- 《使用 Docker 搭建 ELK 环境》【2020.05】
Prometheus
- 使用容器搭建 Prometheus Stacks:《装在笔记本里的私有云环境:监控篇》【2021.10】
MinIO
- 使用容器搭建 MinIO:《装在笔记本里的私有云环境:监控篇》【2021.11】
Syncthing
- 使用容器搭建 Syncthing:《装在笔记本里的私有云环境:监控篇》【2021.11】
- 《使用 Docker 搭建适用于 HomeLab 的轻量邮件网关》【2022.03】
向量数据库
- 《向量数据库入坑:使用 Docker 和 Milvus 快速构建本地轻量图片搜索引擎》【2022.09】
- 《聊聊来自元宇宙大厂 Meta 的相似度检索技术 Faiss》【2022.09】
- 《传统文本检索方式的降维打击,使用 Faiss 实现向量语义检索》【2022.09】
- 《走进向量计算:从源码编译 OpenBLAS》【2022.07】
- 《走进向量计算:制作 OpenBLAS Docker 预构建产物镜像》【2022.07】
- 《从零开始构建向量数据库:Milvus 的源码编译安装(一)》【2022.07】
- 《从零开始构建向量数据库:Milvus 的源码编译安装(二)》【2022.07】
其他
- 使用路由器等低成本设备提升仓库使用体验:《搭建软件仓库回源代理拾遗》【2018.10】
- 相比较 NAT 方案之外的低成本的云端代理方案:《使用 Apache 搭建 VPC 服务器代理》【2019.08】
- 上述AIO软件之外的《轻量安全的部署方案》【2020.07】
- 《近期家用设备(NUC、猫盘、路由器)散热升级记录》【2021.10】
- 《AMD 5800u 笔记本折腾 Proxmox VE 7.0 虚拟化》【2021.10】
- 《装在笔记本里的私有云环境:准备篇》【2021.10】
- 《装在笔记本里的私有云环境:监控篇》【2021.10】
- 《装在笔记本里的私有云环境:网络存储篇(上)》【2021.11】
- 《装在笔记本里的私有云环境:网络存储篇(中)》【2021.11】
- 《玩客云折腾记录(一):编译 ArmBian 系统》【2021.11】
- 《定制你的技术雷达:后篇》【2021.12】
- 《Apple 老设备(系统)精简记录》【2022.04】
- 《聊聊代码仓库可视化:gource 篇》【2022.05】