如何Nginx拒绝非正常浏览器UA?

Nginx

1 前言

一个问题,一篇文章,一出故事。
笔者昨天发现服务器被CC攻击导致宕机,然后笔者已经在Nginx启用一些防御模块,

如何配置Nginx防止CC攻击?


针对以下非正常的UA,笔者想测试下使用Nginx拒绝非正常的UA访问。

183.56.195.106 - - [20/Aug/2025:14:04:51 +0800] "POST /xmlrpc.php HTTP/1.1" 200 520 "-" "Apache-HttpClient/4.5.2 (Java/1.8.0_161)" "-"
38.134.40.117 - - [03/Sep/2025:02:25:17 +0800] "GET / HTTP/1.1" 301 162 "-" "Go-http-client/1.1" "-"

2 最佳实践

2.1 创建拒绝配置

vim /etc/nginx/conf.d/www.cmdschool.org_443.conf

加入如下配置,

server {
    listen 0.0.0.0:443 ssl;
    server_name www.cmdschool.org;
    #...

    if ($http_user_agent ~* (Scrapy|HttpClient|Go-http-client)) {
        return 403;
    }
    #...
}

然后,你可以使用如下命令来测试语法,

nginx -t

2.2 重载使服务生效

systemctl reload nginx
没有评论

发表回复

Nginx
如何配置Nginx防止CC攻击?

1 前言 一个问题,一篇文章,一出故事。 笔者今天早上发现站点无法打开,经查Nginx有大量的如下日 …

Keycloak
如何部署RHBK集群Nginx反向代理?

1 前言 一个问题,一篇文章,一出故事。 之前的章节我们完成了RHBK的单节点代理,本章将要完成RH …

Nginx
如何修改Nginx上传文件的大小?

1 前言 一个问题,一篇文章,一出故事。 笔者今天遇到用户上传文件超过1M被限制,于是笔者通过如下命 …