Nginx 访问限频配置实战:用 `limit_req` 限制高频请求

Nginx 自带的 `ngx_http_limit_req_module` 可以直接按客户端请求速率做限流,适合拦截恶意爬虫和突发高频访问。本文用一套可直接落地的配置,说明 `limit_req_zone`、`burst`、`nodelay` 的作用,以及测试生效和后续优化的方法。 服务器被恶意爬虫或异常高频请求拖慢时,很多人第一反应是上更重的防护方案,但对大多数站点来说,Nginx 自带的限流模块往往就够用。

Nginx 访问限频配置实战:用 `limit_req` 限制高频请求

厌倦了 Makefile?Go 项目可以试试更直观的 Taskfile

Taskfile 是用 Go 编写的任务运行器,主打用 YAML 管理构建、测试和发布流程。对常写 Go 项目的人来说,它在可读性、跨平台和变量管理上都比 Makefile 更省心,但生态成熟度仍不如后者,是否替换更适合结合项目阶段和团队习惯来判断。

厌倦了 Makefile?Go 项目可以试试更直观的 Taskfile

Go无锁编程:解锁高并发服务的性能密码

在 Go 的高并发服务里,`sync.Mutex` 很常见,但并不是所有同步问题都该交给锁处理。本文围绕原子操作、`channel`、`sync.Map`、`sync.Pool` 四种方案,拆开讲清它们各自适合解决什么问题、边界在哪里,以及什么时候反而继续用锁更稳妥。

Go无锁编程:解锁高并发服务的性能密码

Java 正则里的中括号怎么用:字符集、范围、排除与示例详解

Java 正则里的中括号 `[]` 用来定义字符集,是判断“某一位能出现什么字符”的基础写法。本文把常见用法、范围组合、排除写法和转义规则拆开说明,并结合 `^[a-z0-9]+$` 的 Java 示例,顺带讲清 `find()` 与 `matches()` 在整串匹配场景下的区别。

Java 正则里的中括号怎么用:字符集、范围、排除与示例详解

Rust 在 CentOS 上如何进行单元测试

这篇文章用一套最小可行流程,梳理了在 CentOS 上完成 Rust 单元测试的关键步骤:安装 Rust、加载 cargo 环境、创建项目、编写 `#[test]` 用例并通过 `cargo test` 执行。文中保留了命令、示例代码和测试输出,适合刚开始在 Linux 环境下搭建 Rust 开发与测试流程的读者快速上手。

Rust 在 CentOS 上如何进行单元测试