Heim > Artikel > Backend-Entwicklung > Konfigurieren von Nginx zur Implementierung einer einfachen Verteidigung gegen CC-Angriffe
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!