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