昨天做好了nginx+apache的环境,但是发现没有办法获取到评论者的真实IP,尽管nginx端已经明确的加入了
proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
似乎还是不起作用,所以肯定问题是出现在在apache这一端。
先是去搜索了一下,网上说的是用rpaf.so这个第三方模块实现,然后我就直接去httpd.conf看,发现有一个Module叫做mod_remoteip.so,于是跑到apache官网看了一下,果然这个模块可以,于是根据官网的配置,配置了一下
LoadModule remoteip_module modules/mod_remoteip.so RemoteIPHeader X-Real-IP RemoteIPInternalProxy 127.0.0.1
第二行是反向代理的地址,这样的话,我们重启httpd之后就可以看到评论的真实IP了。
后面我们需要修改accesslog的配置,将%h改成%a,以保证我们在日志里面也能看到客户端的正确IP,方便看日志