nginx根据http_user_agent防DDOS

前端squid反向代理到nginx

首先查看访问日志,找出可疑访问 找到http_user_agent 的特征,然后再作过滤

"Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0; MyIE 3.01)Cache-Control: no-store, must-revalidate"

if ($http_user_agent ~ must-revalidate) {

return 503;

}

#这样就返回503错误

location = / {

include proxy.conf;

if ( $http_user_agent ~* "MSIE 5.01" ) {

proxy_pass http://www.qq.com;

#access_log /usr/local/nginx/logs/k.log main;

}

proxy_pass http://windows.abc.com;

}

#判断一下user-agent,如果是MSIE 5.01就把它丢到另外一个地方去就可以了,比如指向www.qq.com,看看能不能抗得住,哈哈

proxy_hide_header Cache-Control;

最后开回Cache-Control,访问一下页面

这下这个链接就缓存到前端squid了,应用服务器不会死机了

#########################################################

nginx中location模块的详细参数介绍

Nginx的Location可以有以下几个匹配:

1. =   严格匹配这个查询。如果找到,停止搜索。

2. ^~ 匹配路径的前缀,如果找到,停止搜索。

3. ~   为区分大小写的正则匹配

4. ~* 为不区分大小写匹配

5.!~和!~*分别为区分大小写不匹配及不区分大小写不匹配

文件及目录匹配

* -f和!-f用来判断是否存在文件

* -d和!-d用来判断是否存在目录

* -e和!-e用来判断是否存在文件或目录

* -x和!-x用来判断文件是否可执行

一些可用的全局变量

$args

$content_length

$content_type

$document_root

$document_uri

$host

$http_user_agent

$http_cookie

$limit_rate

$request_body_file

$request_method

$remote_addr

$remote_port

$remote_user

$request_filename

$request_uri

$query_string

$scheme

$server_protocol

$server_addr

$server_name

$server_port

$uri

rewrite后面的flag可以是:

last

break

redirect

permanent

proxy_pass http://localhost:80;

proxy_set_header Host $host;

可以自动改变转发以后的域名信息

时间: 2024-11-06 09:33:54

nginx根据http_user_agent防DDOS的相关文章

nginx常用的请求头参数和防DDOS攻击

前端squid反向代理到nginx nginx根据http_user_agent防DDOS 首先查看访问日志,找出可疑访问 找到http_user_agent 的特征,然后再作过滤 "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0; MyIE 3.01)Cache-Control: no-store, must-revalidate" if ($http_user_agent ~ must-revalidate) { return

转:nginx防DDOS攻击的简单配置

文章来自于: 近期由于工作需要,做了些防DDOS攻击的研究,发现nginx本身就有这方面的模块ngx_http_limit_req_module和ngx_http_limit_conn_module. 一.基本介绍 1.ngx_http_limit_req_module 配置格式及说明: 设置一个缓存区保存不同key的状态,这里的状态是指当前的过量请求数.而key是由variable指定的,是一个非空的变量,我们这里使用$binary_remote_addr,表示源IP为key值. limit_

OpenResty(nginx扩展)实现防cc攻击

OpenResty(nginx扩展)实现防cc攻击 导读 OpenResty 通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强大的通用 Web 应用平台.这样,Web 开发人员和系统工程师可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,快速构造出足以胜任 10K 乃至 1000K 以上单机并发连接的高性能 Web 应用系统 流程图 本文介绍使用openresty来实现防cc攻击的功能.ope

防DDOS 脚本 CC攻击

#!/bin/sh #auther RuM #date 20140716 cc ( ) { [ -f ignore.ip.list ] ||  echo "127.0.0.1" > ignore.ip.list netstat -ntu | awk '{print $5}' | cut -d: -f4 | sort | uniq -c | sort -nr > BAD_IP_LIST while read line; do CURR_LINE_CONN=$(echo $li

关于Apache (httpd)服务器防DDOS模块mod_evasive的使用说明

关于Apache (httpd)服务器防DDOS模块mod_evasive的使用说明 1. mod_evasive 介绍: mod_evasive 是Apache(httpd)服务器的防DDOS的一个模块.对于WEB服务器来说,是目前比较好的一个防护DDOS攻击的扩展模块.虽然并不能完全防御 DDOS攻击,但在一定条件下,还是起到缓服Apache(httpd)服务器的压力.如果配合iptables.硬件防火墙等防火墙设备配合使用,可能 有更好的效果.可惜LinuxSir.Org 并没有硬件防火墙

Apache 实现http协议自动转成https协议,Apache 防DDOS攻击 使用mod_rpaf模块 mod_evasive模块

一:实践环境介绍 二:配置Apache,实现访问http页面自动转成https页面 需求1:整个站点都实现http自动转https 需求2:整个站点使用http协议,只有某个单独页面从http自动转到https 实验环境介绍 使用yum 安装apache Apache版本 # httpd -v Server version: Apache/2.2.15 (Unix) Server built:   Aug 13 2013 17:29:28 使用yum 安装openssl # yum instal

Apache设置防DDOS模块mod_evasive

mod_evasive 是Apache(httpd)服务器的防DDOS的一个模块.对于WEB服务器来说,是目前比较好的一个防护DDOS攻击的扩展模块.虽然并不能完全防御 DDOS攻击,但在一定条件下,还是起到缓服Apache(httpd)服务器的压力.如果配合iptables.硬件防火墙等防火墙设备配合使用,可能 有更好的效果. 最近准备配置iptables限制每个IP的并发数.但配置iptables才发现,由于Linux内核版本比较低,iptables不支持 connlimit模块,于是想到把

网络攻击无处不在,防DDoS意识需不断提高

如今,人们的生活离不开网络,但是,很多人对于网络上的安全问题并不是很重视,由于很多人对网络犯罪的防范意识并不是很强烈,在安全意识没有得到提高,其实这是一种很危险的现象.网络安全上的问题危害性很大,而最近发生的网络犯罪也比比皆是,而这些网络上的犯罪也可能导致我们个人的信息的丢失,甚至是财务上的损失,所以在日常生活中,我们要提高防DDoS意识,养成一个良好的网络习惯. 人们网络意识影响到网络信息上的安全 具hostspace数据中心相关的调查显示,如今很多人对网络信息安全上的问题还不是很重视,在这些

CDN防DDoS攻击

随着近年来来网络技术的不断进步,CDN已经不只简单的用做网站加速,还能够更好的保护网站不被攻击.Cdn在相关节点中成功的建立动态加速机制以及智能沉于等机制,这种机制能够帮助网站流量访问分配到每一个节点中,智能的进行流量分配机制.如果cdn存在被ddos攻击的情况,Cdn整个系统就能够将被攻击的流量分散开,节省了站点服务器的压力以及节点压力.同时还能够增强网站被黑客给攻击的难度,真正帮助服务管理人员提供更多应该被攻击的时间,cdn能有效的防止ddos攻击,降低对网站带来的危害. 但是CDN防ddo