mod_extforward:Lighttpd 记录客户端在反向代理/负载均衡器后面的真实 IP
我在基于 Nginx 的反向代理/负载均衡器后面设置了 5 个 lighttpd web 服务器,以分配繁忙的电子商务网站的负载。但是,所有 web 服务器节点都将我的负载均衡器的两个 IP 地址放在访问日志文件中。如何强制 lighttpd 记录访问我们网站的所有客户端计算机的真实 IP(公共 IP)地址?
您需要使用 Lighttpd 下的 mod_extforward 从由反向代理服务器(例如 Nginx 或 Squid 代理服务器)添加的“X-Forwarded-For”或“X-Real-IP”标头中提取并记录客户端的真实 IP。
您需要使用 Lighttpd 下的 mod_extforward 从由反向代理服务器(例如 Nginx 或 Squid 代理服务器)添加的“X-Forwarded-For”或“X-Real-IP”标头中提取并记录客户端的真实 IP。
配置
编辑lighttpd.conf文件,输入:
# vi /etc/lighttpd/lighttpd.conf
警告! mod_extforward 包含在 lighttpd 1.4.14 及更高版本中。
在 server.modules 指令末尾添加 mod_extforward(顺序很重要):
server.modules = ( "mod_redirect", "mod_alias", "mod_rewrite", "mod_expire", "mod_access", "mod_auth", "mod_status", "mod_fastcgi", "mod_secdownload", "mod_accesslog", "mod_compress", ### add mod_extforward #### "mod_extforward" )
添加您的代理服务器/反向代理负载均衡器 IP
添加基于 nginx 的反向代理 ip(LB 的 IP),例如 10.10.28.5 和 10.10.28.6:
extforward.forwarder = ( "10.10.28.5" => "trust", "10.10.28.6" => "trust" )
保存并关闭文件。
如何设置客户端的自定义 IP 标头?
您还可以使用以下语法设置标头来搜索客户端的原始 IP 地址:
extforward.headers = ("X-Cluster-Client-Ip")
或者
extforward.headers = ("X-Real-Ip")
重启 Lighttpd
最后,重新启动lighttpd网络服务器,输入:
# service lighttpd restart
您可以使用tail命令查看访问日志:
# tail -f /var/log/lighttpd/access.log
本条目是CentOS / RHEL nginx 反向代理教程系列中的第5 篇(共10 篇)。继续阅读本系列的其余部分:
- CentOS / Redhat Linux:安装 Keepalived 为 Web 集群提供 IP 故障转移
- CentOS / Redhat:安装 nginx 作为反向代理负载均衡器
- 使用 KeepAlived 处理 nginx 故障转移
- nginx:设置 SSL 反向代理(负载平衡 SSL 代理)
- mod_extforward:Lighttpsd 记录客户端在反向代理/负载均衡器后面的真实 IP
- 如何合并 Apache / Lighttpsd / Nginx 服务器日志文件
- Linux nginx:Chroot(Jail)设置
- 操作方法:SPDY SSL 安装和配置
- 在 CentOS/RHEL 上使用 Yum 命令安装 Nginx
- 在 Nginx 上创建自签名 SSL 证书