我在这里运行 Nginx 1.2.4 网络服务器,并使用主机代理来防止 DDoS 攻击。使用这个代理的缺点是我需要从额外的标头中获取真实 IP 信息。在 PHP 中,这样做效果很好$_SERVER[HTTP_X_REAL_IP]
。
现在,在我使用我的主机托管代理之前,我有一种非常有效的方法可以通过以下方式阻止某些 IP:include /etc/nginx/block.conf
并允许/拒绝那里的 IP。
但现在由于代理,Nginx 看到所有流量都来自 1 IP。
有没有办法可以让 Nginx 像 PHP 那样通过标头读取 IP X-REAL-IP
?
答案1
通常代理服务器会发送一个包含客户端真实 IP 地址的 X_FORWARDED_FOR 标头。您可以使用它--with-http_realip_module
来获取真实 IP 地址。这是模块的页面
答案2
我解决了。
必须添加:set_real_ip_from 0.0.0.0;
该 IP 是代理