Nginx 反向代理设置完美,但 IP 仍然是 127.0.0.1?

Nginx 反向代理设置完美,但 IP 仍然是 127.0.0.1?

代理工作正常,我的发行版是 Ubuntu 10.04LTS(服务器)并且 rpaf 在 apache 中加载,具有以下设置 httpd.conf:

<IfModule mod_rpaf.c>
  RPAFenable On
  RPAFsethostname On
  RPAFproxy_ips 127.0.0.1
</IfModule>

我可以确定它已被加载,例如:

#a2enmod rpaf
Module rpaf already enabled

我已强制重新加载 apache,并重新加载 nginx,但我的所有连接仍然来自 127.0.0.1:

127.0.0.1 - - [13/Dec/2010:23:56:27 -0800] "GET /index.php HTTP/1.0" 200 1267 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.19) Gecko/2010031422 Firefox/3.0.19"

为什么它仍然是外部的本地主机?如果需要,我会提供任何信息。

答案1

仔细检查来自代理的请求是否包含 x-forwarded-for 标头,通常这就是问题所在。

答案2

发现问题,在 /etc/nginx/sites-available/default 中我忘记添加添加标题行,我的配置现在如下所示:

location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

瞧!

相关内容