来自 127.0.0.1 的所有 nginx 访问日志(所以不能使用 fail2ban)

spl*_*unt 1 nginx drupal fail2ban

问题

我正在尝试配置 fail2ban 以使用此处显示的块来阻止 ddos​​ 攻击。

基本上它会查看所有请求,如果任何单个 IP 在 60 秒内发出超过 240 个请求,它将阻止它们两天。

然而,我的 nginx 访问中的所有日志都来自 127.0.0.1,这使得整个事情毫无意义。

什么可能导致 nginx 将所有流量记录为来自服务器?

(我正在使用perusio 的 nginx 配置在 LEMP 堆栈上运行 Drupal 。)

Mic*_*ton 5

由于您在 nginx 前面有清漆,它认为所有请求都来自 127.0.0.1,因为从技术上讲它们是。

要解决此问题,请使用nginx real ip 模块X-Forwarded-For标头中选择客户端的 IP 地址,Varnish 会自动将其添加到请求中(除非您告诉它不要这样做)。

一个示例 nginx 配置是:

set_real_ip_from 127.0.0.1;
real_ip_header X-Forwarded-For;
Run Code Online (Sandbox Code Playgroud)