Puncte:0

nginx - limit_conn_zone nu poate să funcționeze

drapel br

Doresc să limitez accesul la o singură conexiune pe IP.

Fragmentul de cod pe care îl folosesc de pe pagina oficială:

Setează zona de memorie partajată și numărul maxim permis de conexiuni pentru o anumită valoare a cheii.Când această limită este depășită, serverul va returna eroarea ca răspuns la o solicitare. De exemplu, directivele

limit_conn_zone $binary_remote_addr zone=adresa:10m;

Server {
    locație /descărcare/ {
        limit_conn addr 1;
    }

permiteți o singură conexiune pentru o adresă IP la un moment dat.

Folosesc nginx în interiorul containerului docker, iar acesta este default.conf:

limit_conn_zone $binary_remote_addr zone=adresa:10m;
root /usr/share/nginx/html;
Server {
  asculta 8080;
  locație /descărcări/ {
      limit_conn addr 1;
      autoindex activat;
  }
}

Acesta este linkul unde este explicat cum se testează dacă limitarea IP funcționează:

https://blog.actorsfit.com/a?ID=00700-9f36887c-5d4b-4f0e-baf5-725ff22f2e42

Comanda curl pe care am folosit-o:

curl -v http://192.168.0.13:8080/downloads/ http://192.168.0.13:8080/downloads/

Raspuns:

* Se încearcă 192.168.0.13:8080...
* TCP_NODELAY setat
* Conectat la 192.168.0.13 (192.168.0.13) portul 8080 (#0)
> GET /descărcări/ HTTP/1.1
> Gazdă: 192.168.0.13:8080
> User-Agent: curl/7.68.0
> Accept: */*
> 
* Marcați pachetul ca nu acceptă mai multe utilizări
< HTTP/1.1 200 OK
< Server: nginx/1.21.4
< Data: Duminică, 28 noiembrie 2021 11:53:36 GMT
< Content-Type: text/html
< Transfer-Coding: fragmentat
< Conexiune: păstrați-vă în viață
< 
<html>
<head><title>Indexul /descărcărilor/</title></head>
<corp>
<h1>Indexul /descărcărilor/</h1><hr><pre><a href="../">../</a>
<a href="text">text</a> 28-Nov-2021 10:51 2
</pre><hr></body>
</html>
* Conexiunea #0 la gazda 192.168.0.13 a rămas intactă
* Pachet găsit pentru gazda 192.168.0.13: 0x55e1cd185b50 [serial]
* Nu se poate multiplexa, chiar dacă am vrut!
* Reutilizarea conexiunii existente! (#0) cu gazda 192.168.0.13
* Conectat la 192.168.0.13 (192.168.0.13) portul 8080 (#0)
> GET /descărcări/ HTTP/1.1
> Gazdă: 192.168.0.13:8080
> User-Agent: curl/7.68.0
> Accept: */*
> 
* Marcați pachetul ca nu acceptă mai multe utilizări
< HTTP/1.1 200 OK
< Server: nginx/1.21.4
< Data: Duminică, 28 noiembrie 2021 11:53:36 GMT
< Content-Type: text/html
< Transfer-Coding: fragmentat
< Conexiune: păstrați-vă în viață
< 
<html>
<head><title>Indexul /descărcărilor/</title></head>
<corp>
<h1>Indexul /descărcărilor/</h1><hr><pre><a href="../">../</a>
<a href="text">text</a> 28-Nov-2021 10:51 2
</pre><hr></body>
</html>
* Conexiunea #0 la gazda 192.168.0.13 a rămas intactă

Jurnal Nginx:

192.168.0.3 - - [28/Nov/2021:11:53:36 +0000] „GET /descărcări/ HTTP/1.1” 200 276 „-” „curl/7.68.0” „-”
192.168.0.3 - - [28/Nov/2021:11:53:36 +0000] „GET /descărcări/ HTTP/1.1” 200 276 „-” „curl/7.68.0” „-”

Am încercat același lucru cu telnet și am obținut același rezultat, pot accesa serverul de mai multe ori de pe același IP.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.