微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

apache – 如何配置我的Web服务器以使用PluggableAuthService的Domain Auth插件?

我正在尝试使用Domain Auth插件根据用户的IP地址为网站访问者分配会员角色.

我可以配置插件OK,但是我发现所有的请求都来自localhost,而不是“真正的”IP地址.

在这种情况下,我正在使用Nginx,所以我尝试通过proxy_set_header(例如http://wiki.nginx.org/HttpProxyModule)将X-Real-IP设置为$remote_addr,但据我所知,只是在标头中提供IP地址.

如何将从Nginx发送到Plone的请求似乎来自远程IP地址?

我正在使用Nginx,但我也很乐意接受适用于Apache的答案.

解决方法:

Domain Auth Plugin使用request.getClientAddr()方法来确定客户端的IP地址,该客户端又使用REMOTE_ADDR变量和X-FORWARDED-FOR标头.

通常情况下,您不能依赖X-FORWARDED-FOR标头,因为几乎任何人都可以设置它.但是您可以将Zope配置为信任来自给定的一组可信代理的头.使用受信任代理列表,REMOTE_ADDR IP地址将替换为X-FORWARDED-FOR标头中给出的下一个地址,直到您的地址用完为止.找到的最后一个IP地址是新的客户端地址.这允许您链接一组代理,并且仍然能够信任您获得正确的客户端地址以基于您的角色.

要将Zope配置为信任代理的X-FORWARDED-FOR标头,请在zope.conf文件中设置trusted-proxy配置参数.如果您的Nginx服务器在同一主机上运行,​​只需将其设置为localhost:

trusted-proxy 127.0.0.1

您可以通过添加多个条目来指定多个名称

trusted-proxy 127.0.0.1
trusted-proxy loadbalancer.localnet

trusted-proxy接受ip地址和主机名.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐