Heim >Backend-Entwicklung >PHP-Tutorial >Konfigurieren von Nginx zur Implementierung einer einfachen Verteidigung gegen CC-Angriffe

Konfigurieren von Nginx zur Implementierung einer einfachen Verteidigung gegen CC-Angriffe

小云云
小云云Original
2018-02-22 10:40:453752Durchsuche

DDoS-Angriff: Ein Distributed-Denial-of-Service-Angriff ist ein Angriff, der eine große Anzahl von Broilern oder gefälschten IPs verwendet, um eine große Anzahl von Serveranfragen zu initiieren, was schließlich dazu führt, dass der Server lahmgelegt wird. CC-Angriff: ähnelt einem DDoS-Angriff, zeichnet sich jedoch dadurch aus, dass er hauptsächlich eine große Anzahl von Seitenanforderungen initiiert, sodass der Datenverkehr nicht groß ist, aber dazu führen kann, dass auf die Seite nicht zugegriffen werden kann.

In diesem Artikel wird hauptsächlich vorgestellt, wie man sich unter Lua+Nginx schnell und effektiv gegen CC-Angriffe verteidigen kann. Was die Installation von Nginx angeht, möchte ich nicht ohne weiteres auf das Beispiel eingehen. Ich hoffe, es kann Ihnen helfen.

Verwenden Sie die Nginx-Konfiguration, um sich einfach gegen CC-Angriffe zu verteidigen
============================= = =====================================

Hauptsächlich Durch die Zusammenarbeit von Nginx und Lua wird der Zweck der Verteidigung erreicht.

1. Nginx-Kompilierung unterstützt Lua
---------------------------------

1. lua-nginx-module herunterladen


wget https://github.com/openresty/lua-nginx-module/archive/master.zip
unzip master.zip

2. Kompilieren


#./configure \
--user=nginx \
--group=nginx \
--prefix=/usr/local/gacp/nginx \
--error-log-path=/data/logs/nginx/error/error.log \
--http-log-path=/data/logs/nginx/access/access.log \
--pid-path=/usr/local/gacp/nginx/conf/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--with-http_flv_module \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-pcre \
--with-http_realip_module \
--with-http_gzip_static_module \
--with-google_perftools_module \
--with-file-aio \
--add-module=../ngx_cache_purge-2.3 \
--add-module=../lua-nginx-module-master

# make && make install

2. Konfiguration


http {
.....
limit_req_zone $cookie_token zone=session_limit:3m rate=1r/s;
limit_req_zone $binary_remote_addr $uri zone=auth_limit:3m rate=1r/m;


}

server {
listen 80;
server_name localhost;
access_log /data/logs/nginx/access/localhost.access.log main;
error_log /data/logs/nginx/error/localhost.error.log;
charset utf-8;
client_max_body_size 75M;
root /data/www;

location / {

limit_req zone=session_limit burst=5;

rewrite_by_lua '
local random = ngx.var.cookie_random
if(random == nil) then
return ngx.redirect("/auth?url=" .. ngx.var.request_uri)
end

local token = ngx.md5("opencdn" .. ngx.var.remote_addr .. random)
if(ngx.var.cookie_token ~= token) then
return ngx.redirect("/auth?url=" .. ngx.var.request_uri)
end
';
}

location /auth {
limit_req zone=auth_limit burst=1;

if ($arg_url = "") {
return 403;
}

access_by_lua '
local random = math.random(9999)
local token = ngx.md5("opencdn" .. ngx.var.remote_addr .. random)
if(ngx.var.cookie_token ~= token) then
ngx.header["Set-Cookie"] = {"token=" .. token, "random=" .. random}
return ngx.redirect(ngx.var.arg_url)
end
';

}
}

Ist das nicht ganz einfach?


Verwandte Empfehlungen:

Anti-CC-Angriff PHP-Anti-CC-Angriffs-Implementierungscode

Das obige ist der detaillierte Inhalt vonKonfigurieren von Nginx zur Implementierung einer einfachen Verteidigung gegen CC-Angriffe. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn