5小时后,尝试解决问题并阅读我发现的所有教程,然后在这里寻求帮助。
我有一台Nginx Reverse Proxy
服务器指向我的Apache
Web服务器,但是在Apache
上,我仅从IP address
服务器上获得了Nginx reverse proxy
,而没有访问者ip
我的Nginx代理文件: /etc/nginx/sites-available/proxy.conf
proxy_pass http://MYIPADDRESS;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_redirect off;
proxy_buffering off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
在Apache上,我已添加到/etc/apache2/apache2.conf
文件:
RemoteIPHeader X-Forwarded-For
并替换
LogFormat "%a %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
使用
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{X-Forwarded-For}i" combined
a2enmod remoteip
也已启用
在Nginx /var/log/nginx/access.log
文件中,我也总是得到localhost
IP,例如:
127.0.0.1 - - [27/Jan/2020:23:53:07 +0800] "GET...
还尝试添加到/etc/nginx/nginx.conf
:
set_real_ip_from 127.0.0.1;
real_ip_header X-Forwarded-For
如果我现在在Web服务器上运行,则浏览器中将包含一个PHP脚本:
<?php
echo 'User IP - '.$_SERVER['REMOTE_ADDR'];
?>
我刚刚获得了反向代理服务器IP,对于整个服务器也是如此。
两个服务器的操作系统都是Debian 9,有人知道吗?非常感谢!
答案 0 :(得分:1)
首先,请确保您已安装并启用mod_remoteip apache模块。
我在服务器上使用以下配置。
在httpd.conf中:
LoadModule remoteip_module modules/mod_remoteip.so
RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy 127.0.0.1
在nginx站点配置文件中:
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $http_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;