检查IP是谁在nginx上访问我的网站

我真的不想知道这件事,因为我想保持它真正的私密性,并尽可能给我的访问者的隐私(不是说我的博客是受欢迎的)。

我刚刚安装了Ubuntu的nginx从数字海洋与Ghost预装,但以前我与Wordpress。 现在(在我写作的这一刻),我不断看到这个日志

POST /bidRequest?exchange=smaato 500 2ms - 19b POST /bidRequest?exchange=smaato 500 1ms - 19b POST /bidRequest?exchange=smaato 500 1ms - 19b POST /bidRequest?exchange=smaato 500 2ms - 19b POST /bidRequest?exchange=smaato 500 1ms - 19b POST /bidRequest?exchange=smaato 500 1ms - 19b POST /bidRequest?exchange=smaato 500 2ms - 19b POST /bidRequest?exchange=smaato 500 3ms - 19b POST /wp-admin/admin-ajax.php 500 2ms - 19b POST /bidRequest?exchange=smaato 500 2ms - 19b POST /bidRequest?exchange=smaato 500 3ms - 19b GET /winBid?erid=EzLM7nyV0n&eid=2&cpm=1.45449&bid=1628&w=1384697998 301 2ms POST /bidRequest?exchange=smaato 500 2ms - 19b POST /bidRequest?exchange=smaato 500 1ms - 19b POST /bidRequest?exchange=smaato 500 3ms - 19b POST /bidRequest?exchange=smaato 500 2ms - 19b 

这是来自每一秒,因为你可以看到,他们永远不会停止对此,我在想,他们正试图侵入我的网站,而我在Wordpress或从这些请求正在进行。 我想知道这些攻击,并阻止他们的IP,如果这是不好的事情。 我怎么会发现,或者我应该在我的盒子里安装某种模块/插件,以防止这种行为?

日志通常可以打开,并在nginx.conf /etc/nginx/nginx.conf设置path

如果你vim或使用你的编辑器并编辑该文件,并更改或检查这一行

 access_log /var/log/nginx/access.log main; 

NGINX能够logging您可能感兴趣的IP和其他信息,但似乎您在此显示的日志未configuration为包含该信息。 如果你调整你的nginx日志,你应该可以启用它。 如果您需要帮助,请在此处发布您的nginx日志loggingconfiguration。 我看起来像这样:

  log_format main '$remote_addr - $remote_user [$time_local] ' '"$request" $status $bytes_sent ' '"$http_referer" "$http_user_agent" ' '"$gzip_ratio"'; 

并在日志中这样的日志:

“Mozilla / 5.0(Macintosh;英特尔Mac OS X 10_8_5)AppleWebKit / 537.36(KHTML)”/ GET / HTTP / 1.1“ ,像Gecko)Chrome / 31.0.1650.57 Safari / 537.36“

一旦你发现有问题的IP,你应该能够以多种方式阻止它们 – 最有效的可能是作为防火墙(iptables)的一部分,或者如果临时阻塞,直到重新启动是可以接受的,你可以使用REJECT路由条目基本上使您的计算机拒绝与该主机通话。 如果你认为这有点压力,你可能会以各种方式制定规则在nginx中阻塞(想到速率限制)。

如果你的web服务器是在一个负载均衡器的后面,比如amazon ELB,$ remote_addr 不会给你客户端IP。 而是你的每一个入口都是上游负载均衡设备的IP。

为了解决这个问题,用$ http_x_forwarded_forreplace$ remote_addr:

log_format main
'$ http_x_forwarded_for – $ remote_user [$ time_local]“$ request”'
'$ status $ body_bytes_sent“$ http_referer”'
'“$ http_user_agent”';