Maison > Article > Opération et maintenance > Compréhension approfondie des stratégies de protection de sécurité de Nginx pour limiter les taux de requêtes et prévenir les requêtes malveillantes
Compréhension approfondie des stratégies de protection de sécurité de Nginx pour limiter les taux de requêtes et prévenir les requêtes malveillantes
Nginx est un serveur Web open source hautes performances. Il peut non seulement être utilisé pour déployer des sites Web statiques, un proxy inverse et un équilibrage de charge, mais également. grâce à une série de stratégies de protection de sécurité pour protéger nos serveurs contre les requêtes malveillantes. Cet article se concentrera sur les stratégies de protection de sécurité de Nginx pour limiter les taux de requêtes et prévenir les requêtes malveillantes, et fournira des exemples de code pertinents.
Les requêtes malveillantes sont souvent initiées de plusieurs manières à haute fréquence, ce qui exerce une pression énorme sur le serveur. Afin d'éviter une surcharge du serveur, nous pouvons utiliser le module Nginx pour limiter le taux de requêtes. .
Dans le fichier de configuration Nginx, vous pouvez utiliser la directive limit_req_zone
pour créer une zone de mémoire partagée avec une limite de taux de requêtes, par exemple : limit_req_zone
指令来创建一个请求速率限制的共享内存区域,例如:
http { limit_req_zone $binary_remote_addr zone=limit:10m rate=1r/s; }
以上配置创建了一个10MB大小的内存区域,限制每秒钟从同一个客户端IP地址发起的请求数不超过1个。接下来,我们可以在具体的请求处理块中使用limit_req
指令来应用这个限制,例如:
server { location /api/ { limit_req zone=limit burst=5; proxy_pass http://backend; } }
以上配置表示在/api/
路径下限制请求速率,并设置了一个突发限制值为5。这样一来,如果有大量的请求超过了限制速率,Nginx将返回503错误给客户端,并抛弃这些请求。
除了限制请求速率,我们还可以通过其他策略来防止恶意请求,例如:
allow
和deny
指令来设置IP的访问控制,只允许白名单中的IP访问,或者拦截黑名单中的IP。例如:location /admin/ { allow 192.168.1.0/24; deny all; }
以上配置表示只允许IP在192.168.1.0/24网段内的访问/admin/
路径。
if
指令和正则表达式来拦截恶意请求的URI。例如:location / { if ($uri ~* "/wp-admin" ) { return 403; } }
以上配置表示如果请求的URI中包含/wp-admin
,则返回403错误。
server { location / { if ($http_referer !~* "^https?://example.com") { return 403; } } }
以上配置表示如果Referer字段不是以http://example.com
或https://example.com
rrreee
limit_req
dans le bloc de traitement de requête spécifique pour appliquer cette limite, par exemple : rrreee
La configuration ci-dessus indique que les requêtes sont limitées sous le/api/ code> path rate et définissez une valeur limite de rafale de 5. De cette façon, si un grand nombre de requêtes dépasse le taux limite, Nginx renverra une erreur 503 au client et abandonnera ces requêtes. <p></p>
<ol start="2">Prévenir les requêtes malveillantes<p></p>🎜En plus de limiter le taux de requêtes, nous pouvons également empêcher les requêtes malveillantes grâce à d'autres stratégies, telles que : 🎜</ol>
<ul>🎜Liste blanche/liste noire IP : vous pouvez passer <code les directives>allow
et deny
sont utilisées pour définir le contrôle d'accès IP, autorisant uniquement l'accès IP dans la liste blanche, ou bloquant les IP dans la liste noire. Par exemple : 🎜rrreee🎜La configuration ci-dessus signifie que seules les adresses IP du segment réseau 192.168.1.0/24 sont autorisées à accéder au chemin /admin/
. 🎜if
et les expressions régulières. Par exemple : 🎜/wp-admin
, une erreur 403 sera renvoyée. 🎜http://example.com
ou https://example.com code>, il sera renvoyé une erreur 403. 🎜🎜En résumé, Nginx propose une multitude de stratégies de protection de sécurité pour limiter les taux de requêtes et prévenir les requêtes malveillantes. En configurant correctement Nginx, nous pouvons protéger le serveur des requêtes malveillantes et améliorer la stabilité et la sécurité du serveur. 🎜🎜Ce qui précède est une introduction à la compréhension approfondie des stratégies de protection de sécurité de Nginx pour limiter les taux de requêtes et prévenir les requêtes malveillantes. J'espère que cela sera utile aux lecteurs. 🎜🎜 (Remarque : les éléments ci-dessus ne sont que des exemples de code et peuvent ne pas être entièrement applicables à l'environnement de production. Veuillez configurer en fonction de la situation réelle et de la documentation officielle de Nginx.) 🎜
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!