溫馨提示×

nginx日志中的IP地址怎么屏蔽

小樊
56
2025-06-01 22:42:15
欄目: 編程語言

在Nginx中,如果你想要屏蔽某些IP地址,可以通過配置ngx_http_access_module模塊來實現。以下是一些常見的方法:

方法一:使用denyallow指令

  1. 編輯Nginx配置文件: 打開你的Nginx配置文件,通常位于/etc/nginx/nginx.conf/etc/nginx/sites-available/your-site。

  2. 添加訪問控制規則: 在serverlocation塊中添加denyallow指令來控制IP訪問。

    server {
        listen 80;
        server_name example.com;
    
        # 屏蔽特定IP地址
        deny 192.168.1.1;
        deny 192.168.1.2;
    
        # 允許所有其他IP地址
        allow all;
    
        location / {
            root /var/www/html;
            index index.html index.htm;
        }
    }
    
  3. 重新加載Nginx配置: 保存配置文件并重新加載Nginx以應用更改。

    sudo nginx -s reload
    

方法二:使用geo模塊

如果你有多個IP地址需要屏蔽,可以使用geo模塊來簡化配置。

  1. 編輯Nginx配置文件: 打開你的Nginx配置文件。

  2. 定義IP地址范圍: 使用geo模塊定義需要屏蔽的IP地址范圍。

    http {
        geo $block_ip {
            default 0;
            192.168.1.1 1;
            192.168.1.2 1;
        }
    
        server {
            listen 80;
            server_name example.com;
    
            # 屏蔽特定IP地址
            if ($block_ip) {
                return 403 "Forbidden";
            }
    
            location / {
                root /var/www/html;
                index index.html index.htm;
            }
        }
    }
    
  3. 重新加載Nginx配置: 保存配置文件并重新加載Nginx以應用更改。

    sudo nginx -s reload
    

方法三:使用fail2ban

fail2ban是一個更高級的工具,可以自動屏蔽惡意IP地址。

  1. 安裝fail2ban: 在大多數Linux發行版上,可以使用包管理器安裝fail2ban。

    sudo apt-get install fail2ban  # Debian/Ubuntu
    sudo yum install fail2ban      # CentOS/RHEL
    
  2. 配置fail2ban: 編輯fail2ban的配置文件,通常位于/etc/fail2ban/jail.local/etc/fail2ban/jail.d/*.conf。

    [DEFAULT]
    bantime = 600
    findtime = 600
    maxretry = 3
    
    [nginx-badbots]
    enabled = true
    filter = nginx-badbots
    action = iptables-multiport[name=BadBots, port="http,https", protocol=tcp]
    logpath = /var/log/nginx/access.log
    
  3. 創建過濾器: 創建一個過濾器文件來匹配惡意IP地址,通常位于/etc/fail2ban/filter.d/nginx-badbots.conf。

    [Definition]
    failregex = ^<HOST> -.*"(GET|POST|HEAD).*HTTP.*"
    ignoreregex =
    
  4. 重啟fail2ban: 保存配置文件并重啟fail2ban以應用更改。

    sudo systemctl restart fail2ban
    

通過以上方法,你可以有效地屏蔽Nginx日志中的特定IP地址。選擇適合你需求的方法進行配置即可。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女