前天发现我的个人网站很慢,很慢,有时都无法访问。最后连接到服务器,发现有人恶意攻击,在我的服务器留下很多很多恶意评论,同时生成20G的垃圾. 

清除掉垃圾后,我的网站又重归线上。

接下来, 我们如何避免再次这些恶意之人的攻击. 一个简单的方案:通过nginx web服务器下客户端访问网站的主机名或IP地址阻止或拒绝访问?

如何配置Nginx阻止IPs?

server {
  server_name xxx.xxx.xxx;

  location ^~ /comments/ {
    # 下面这些都是那些恶意ips
    deny 62.210.180.122;
    deny 62.210.202.176;
    deny 62.210.82.122;
    deny 62.210.202.55;
    deny 62.210.202.48;
    deny 195.154.170.190;
    deny 195.154.170.194;
    deny 195.154.187.245;
    deny 195.154.181.60;
    deny 195.154.187.229;

    allow all;
  }


  location ^~ / {
    ....
  }
}

或者,我们可以添加一个配置文件,统一管理。

你可以在 /etc/nginx 目录下创建一个文件 blockips.conf, 然后把需要deny的IPs全部添加进入

deny 62.210.82.0/24;
deny 62.210.180.0/24;
deny 62.210.202.0/24;
deny 62.210.202.0/24;
deny 195.154.170.0/24;
deny 195.154.181.0/24;
deny 195.154.187.0/24;
deny 5.188.210.0/24;

然后 include 到 /etc/nginx/nginx.conf 

http {
        ......
        ## Block spammers and other unwanted visitors  ##
        include /etc/nginx/blockips.conf;
        ....
}

最后, 我们需要重新加载 nginx 新的配置.

/usr/sbin/nginx -s reload