文章列表

使用容器搭建简单可靠的容器仓库

提到容器仓库,我们一般会想到 Nexus、Harbor ,那么有没有更轻量可靠的方案呢。尤其是在频繁构建的 CI 流水线中、或是分布式的环境中需要高频拉取镜像的场景中。[《使用容器搭建 APT Cacher NG 缓存代理服务》]一文提到了缓存,虽然可以使用文末中的 Nginx 的补充方式来提供容器镜像导出文件的缓存托管,但是这种方式相比较使用镜像仓库而言,不能够直接使用 Docker Client 与之交互,需要借助导出和导入命令,使用起来颇有不便。本篇文章继续聊聊,如何使用容器搭建轻量可靠的镜像仓库:distribution。 阅读全文

使用容器搭建 APT Cacher NG 缓存代理服务

, , ,
最近在对公有云服务器进行梳理和资源整合,难免要进行机器初始化,以及针对部分镜像进行重新构建。在这个过程中,最浪费时间的莫过于软件包的下载,为了提升整体部署和镜像构建效率,可以搭建一台用于缓存各种常用软件包的缓存代理服务器。 阅读全文

如何在容器时代高效使用 Nginx 三方模块

, ,
在中文网络之中,存在着大量的陈旧内容,包括并不限于各种只能在特定环境中一次性安装使用的陈旧软件,Nginx 编译安装的内容尤甚。在继续 [Nginx NJS] 实战之前,我们可以先了解下如何相对快速、安全的使用 Nginx 三方模块。 阅读全文

使用 Docker 和 Nginx NJS 实现 API 聚合服务(前篇)

, , ,
两个月前,我曾写过一篇名为[《从封装 Nginx NJS 工具镜像聊起》]的文章,简单介绍了 Nginx 官方团队推出的 NJS 以及我为他定制的 Docker 镜像。这篇文章,我将介绍如何使用 Nginx NJS 用精简的代码行数编写一套 API 聚合工具,并如何使用 Docker 将其封装为可用服务。 阅读全文

Nginx 模块系统:前篇

,
从 Nginx 第一个版本至今已有 17 个年头,在这十余年里,Nginx 一直把持着 Web 服务软件第一梯队的宝座,它背后的丰富的模块系统,犹如蒙古铁骑举着 Nginx 的旗帜,扫荡了全球该领域的大半的市场。但是我们知道,软件编译是十分耗时的,非常不利于“快速行军”,除了堆硬件外,Nginx 是如何保持相对高速的迭代过程的呢?这背后模块系统和动态模块设计功不可没。本篇作为第一篇,聊聊书本之外的 Nginx 模块的一些事情,希望能让你对 Nginx 的模块有更立体的认知。 阅读全文

如何制作和使用自签名证书

, , , ,
在计算机加密和安全领域中,我们会时常遇到:自签名安全证书。因为自签名证书签发相对于商业证书流程简单,费用低廉(除了电费几乎不花钱),更新容易。所以在开发领域、甚至一些小众场景下特别常见,比如 K8S / MySQL 集群中的 TLS 认证,一些大的集团、公司的内网服务、网站安全证书、企业路由器设备的管理后台、用于管理企业员工的“安全准入客户端”等不乏使用这个方案。本篇文章就来聊聊如何快速生成证书,以及如何安装部署到不同的环境中。 阅读全文

从封装 Nginx NJS 工具镜像聊起

, , ,
最近发现有不少需求可以通过 Nginx JavaScript (NJS)来完成,相比较运行一套完整的 Web 服务来说,轻量高效的方案总是惹人喜爱,更何况这套方案是由 Nginx 官方团队推出,并搭上了繁荣的 JavaScript 生态。本篇文章先从 NJS 容器封装、以及容器镜像优化来聊聊。 阅读全文

使用 Docker 和 Nginx 打造高性能二维码服务(二)

, , , ,
三年前我曾写过一篇[《使用 Docker 和 Nginx 打造高性能的二维码服务》],时过境迁,容器软件、基础系统、Nginx、QRCode 依赖库都经历了版本升级,为了构建可维护,性能更好的 QRCode 生成服务,就有了本篇折腾内容。希望本篇内容的出现可以帮到同样需要减少各种语言、框架中二维码生成实现代码的你。 阅读全文

日志分析处理:GoAccess 篇

, , ,
这篇文章原计划在 2020 年中智源大会举办完毕之后整理出来,奈何各种事情阻塞,一直拖延至今。恰逢年末跑一些数据,以及计划搭建一些日常辅助业务运营的实时看板,借着机会把内容整理出来。本篇是第一篇,聊聊怎么使用 GoAccess 进行各种常见场景,进行常规日志行为数据分析。 阅读全文

使用 Nginx 容器为 Traefik 配置高性能通用错误页面

, , , ,
使用 Traefik 比较久的读者应该会发现,在服务重启的时候,原来的网站会展示 404 not found 的空白页面,虽然多数情况下服务恢复很快,但是这个恢复时间取决于部署启动的应用和监控检查配置策略,如果没有配置流量切换规则,那么有的时候,会看到很久的空白页面,这样的体验显然不好。为了提升体验,我们可以使用 Traefik 提供的错误页面中间件来解决这个问题,优化访问体验。本篇思路同样可以处理通用 Nginx 错误页面的创建。 阅读全文