代理工作正常,我的发行版是 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;
}
瞧!