繁体   English   中英

如何使nginx和apache一起显示真实的客户端IP?

[英]how to make nginx and apache work together for showing the real client IP?

我正在尝试在Nginx代理后面配置一个Apache服务器。 Nginx和apache实例位于两个不同的主机上。 双方服务器都在运行debian压缩。

我在前端服务器(192.168.1.30)的nginx.conf中有此文件

 server {

    listen   80; ## listen for ipv4
    listen   [::]:80 default ipv6only=on; ## listen for ipv6

    server_name  front.tld.org;  #real hostname changed

    access_log  /var/log/nginx/localhost.access.log;

    proxy_set_header   Host             $host;
    proxy_set_header   X-Real-IP        $remote_addr;
    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

    location / {
      proxy_pass http://192.168.1.1:80;  #local IP of the server running apache
    }

在apache主机(192.168.1.1)上,/ /etc/apache2/mods-enabled/rpaf.conf

<IfModule mod_rpaf.c>
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 192.168.1.30
RPAFheader X-Real-IP
</IfModule>

我重新启动了Nginx和apache2服务。 但是在apache2 /var/log/apache2/access.log我始终有一个来自192.168.1.30的原始IP(代理),而不是真正的客户端。

有什么问题吗 ? 关于如何调试的任何想法?

记录下来,Debian挤压配置文件有些奇怪。

以下配置有效:

RPAFenable On
RPAFsethostname On
RPAFproxy_ips 172.27.6.74 172.27.7.17 127.0.0.1 ::1
RPAFheader X-Forwarded-For

(我必须删除<IfModule mod_rpaf.c>

您目前所看到的是正确的行为。 因为只有您的应用程序(在Apache上运行)才能看到真正的IP。 例如,安装示例应用程序(例如WordPress)和安装实时分析(例如Piwik)。 在WordPress页脚中插入Piwik代码,并访问WordPress网站(注销后)。 现在,Piwik将显示真实IP,而不是RPAFproxy_ips设置的IP。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM