如何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集群管理工具nginxtool?

1 前言 一个问题,一篇文章,一出故事。 笔者公司内部有基于Anycase部署的Nginx负载均衡器 …

Docker
如何部署Docker Nginx 1.20.2?

1 前言 一个问题,一篇文章,一出故事。 本章将完成Docker Nginx的基础部署。 2 最佳实 …

Docker
如何打包Docker Nginx 1.20.2?

1 前言 一个问题,一篇文章,一出故事。 由于docker hub原版本的nginx镜像过于精简,于 …