< 返回

在nginx中根據用戶真實IP進行限制

2024-11-19 17:30 作者:xiao gang 閱讀量:4192

在 NGINX 中根據用戶的真實 IP 進行限制,可以通過配置 geo 模塊和 http 相關的配置來實現。以下是一個基本的步驟和示例:

步驟

  1. 獲取真實 IP: 如果 NGINX 后面有反向代理(如 Cloudflare、nginx-proxy 等),需要確保能夠獲取到用戶的真實 IP。你需要配置 real_ip 模塊。

  2. 配置 geo 模塊: 使用 geo 指令來定義一個變量,該變量可以根據 IP 地址進行限制。

  3. 配置訪問控制: 使用 limit_req 或 deny 指令根據真實 IP 進行限制。

示例配置

以下是一個基本的示例配置,限制某個 IP 地址的請求速率,并允許通過 X-Forwarded-For 獲取到真實的客戶端 IP。

http {
    # 開啟 real_ip 模塊以獲取真實 IP
    set_real_ip_from  192.0.2.0;  # 反向代理服務器的 IP
    set_real_ip_from  203.0.113.0; # 反向代理服務器的 IP
    real_ip_header    X-Forwarded-For;

    # 定義一個限制請求速率的區域
    limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

    server {
        listen 80;
        server_name example.com;

        location / {
            # 應用請求速率限制
            limit_req zone=one burst=5 nodelay;

            # 處理請求的其他配置
            proxy_pass http://backend;
        }

        # 拒絕某些 IP 地址
        deny 192.0.2.100;  # 拒絕特定 IP 地址
        allow all;         # 允許所有其他 IP
    }
}

說明

  1. set_real_ip_from: 這條指令用于告訴 NGINX 哪些 IP 地址是可信的代理。如果你的 NGINX 服務器前面有負載均衡器或 CDN,確保將它們的 IP 添加到這里。

  2. real_ip_header: 指定從哪個 HTTP 頭獲取真實的客戶端 IP,這里使用的是 X-Forwarded-For。

  3. limit_req_zone: 定義一個請求限速區域,$binary_remote_addr 是用戶的真實 IP 地址。這里設置為每秒一個請求,最大突發請求為 5 個。

  4. limit_req: 在 location 塊中應用請求限制。

  5. deny 和 allow: 可以根據 IP 地址拒絕或允許訪問。

注意事項

  • 確保你的 NGINX 配置文件無誤,并使用 nginx -t 命令檢查配置。

  • 重新加載 NGINX 配置,使用 nginx -s reload。

  • 根據你的實際需求調整速率限制和允許/拒絕的 IP 地址。

這樣配置后,NGINX 就可以根據用戶的真實 IP 進行請求限制。

聯系我們
返回頂部 主站蜘蛛池模板: 在线看无码的免费网站| 漂亮人妻被黑人久久精品| 日本中文字幕乱理伦片| 国产成人综合在线观看网站| 亚洲免费福利视频| 18禁男女爽爽爽午夜网站免费| 欧美日韩国产成人高清视频| 欧美亚洲另类在线| 国产精品日本一区二区在线播放| 亚洲欧美在线观看首页| 6080夜福利| 精品久久久久久国产牛牛app| 性xxxxfreexxxxx国产| 免费国产小视频| a级毛片毛片免费观看永久| 色噜噜狠狠色综合日日| 成年日韩片av在线网站| 台湾一级淫片完整版视频播放| 一道本在线免费视频| 精品99在线观看| 在线观看国产一区二区三区| 亚洲欧洲日产国码一级毛片| 香蕉视频在线看| 日韩精品人妻系列无码av东京| 国产免费小视频| 中国特黄一级片| 狼群视频在线观看www| 国产色综合天天综合网| 亚洲AV香蕉一区区二区三区| 钻胯羞辱的视频vk| 成人h动漫精品一区二区无码| 人妻被按摩师玩弄到潮喷| 80电影天堂网理论r片| 最新亚洲人成无码网www电影| 国产亚洲av片在线观看播放| 一级毛片aaaaaa免费看| 污视频app网站| 国产无遮挡又黄又爽高潮| 亚洲一级免费视频| 蜜中蜜3在线观看视频| 娇小体积女大战两黑鬼|