Điểm:0

nginx - limit_conn_zone không thể làm cho nó hoạt động

lá cờ br

Tôi muốn giới hạn quyền truy cập chỉ một kết nối trên mỗi IP.

Đoạn mã tôi đang sử dụng từ trang chính thức:

Đặt vùng bộ nhớ dùng chung và số lượng kết nối tối đa được phép cho một giá trị khóa nhất định.Khi vượt quá giới hạn này, máy chủ sẽ trả về lỗi khi trả lời yêu cầu. Ví dụ, các chỉ thị

limit_conn_zone $binary_remote_addr zone=addr:10m;

người phục vụ {
    vị trí /tải xuống/ {
        giới hạn_conn addr 1;
    }

chỉ cho phép một kết nối trên một địa chỉ IP tại một thời điểm.

Tôi đang sử dụng nginx bên trong bộ chứa docker và đây là default.conf:

limit_conn_zone $binary_remote_addr zone=addr:10m;
gốc /usr/share/nginx/html;
người phục vụ {
  nghe 8080 ;
  vị trí /tải xuống/ {
      giới hạn_conn addr 1;
      tự động lập chỉ mục;
  }
}

Đây là liên kết được giải thích cách kiểm tra xem giới hạn IP có hoạt động hay không:

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

Lệnh curl tôi đã sử dụng:

cuộn tròn -v http://192.168.0.13:8080/downloads/ http://192.168.0.13:8080/downloads/

Phản ứng:

* Đang thử 192.168.0.13:8080...
* Bộ TCP_NODELAY
* Đã kết nối với cổng 192.168.0.13 (192.168.0.13) 8080 (#0)
> NHẬN /tải xuống/ HTTP/1.1
> Máy chủ: 192.168.0.13:8080
> Tác nhân người dùng: curl/7.68.0
> Chấp nhận: */*
> 
* Đánh dấu gói là không hỗ trợ đa dụng
< HTTP/1.1 200 OK
< Máy chủ: nginx/1.21.4
< Ngày: CN, 28 tháng 11 năm 2021 11:53:36 GMT
< Loại nội dung: văn bản/html
< Chuyển mã hóa: chunked
< Kết nối: giữ nguyên
< 
<html>
<head><title>Chỉ mục /tải xuống/</title></head>
<body>
<h1>Chỉ mục của /downloads/</h1><hr><pre><a href="../">../</a>
<a href="text">text</a> 28-Nov-2021 10:51 2
</pre><hr></body>
</html>
* Kết nối #0 đến máy chủ 192.168.0.13 còn nguyên vẹn
* Đã tìm thấy gói cho máy chủ 192.168.0.13: 0x55e1cd185b50 [serial]
* Không thể ghép kênh, ngay cả khi chúng tôi muốn!
* Sử dụng lại kết nối hiện có! (#0) với máy chủ 192.168.0.13
* Đã kết nối với cổng 192.168.0.13 (192.168.0.13) 8080 (#0)
> NHẬN /tải xuống/ HTTP/1.1
> Máy chủ: 192.168.0.13:8080
> Tác nhân người dùng: curl/7.68.0
> Chấp nhận: */*
> 
* Đánh dấu gói là không hỗ trợ đa dụng
< HTTP/1.1 200 OK
< Máy chủ: nginx/1.21.4
< Ngày: CN, 28 tháng 11 năm 2021 11:53:36 GMT
< Loại nội dung: văn bản/html
< Chuyển mã hóa: chunked
< Kết nối: giữ nguyên
< 
<html>
<head><title>Chỉ mục /tải xuống/</title></head>
<body>
<h1>Chỉ mục của /downloads/</h1><hr><pre><a href="../">../</a>
<a href="text">text</a> 28-Nov-2021 10:51 2
</pre><hr></body>
</html>
* Kết nối #0 đến máy chủ 192.168.0.13 còn nguyên vẹn

Nhật ký Nginx:

192.168.0.3 - - [28/Nov/2021:11:53:36 +0000] "GET /downloads/ HTTP/1.1" 200 276 "-" "curl/7.68.0" "-"
192.168.0.3 - - [28/Nov/2021:11:53:36 +0000] "GET /downloads/ HTTP/1.1" 200 276 "-" "curl/7.68.0" "-"

Tôi đã thử tương tự với telnet và nhận được kết quả tương tự, tôi có thể truy cập máy chủ nhiều lần từ cùng một IP.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.