我在Alteon负载均衡器后面有nginx,其中有两个资源/public_url
和/private_url
。我可以使用private_url
限制对nginx.conf
的访问:
location /private_url {
include whitelist.conf;
deny all;
}
请注意,public_url
仍然可以通过任何IP地址添加
当我直接访问nginx时,此方法有效。但是,当我通过Alteon访问nginx时,我只能看到Alteon的IP地址。结果,我无法区分列入白名单和黑名单的IP地址。
将IP过滤组织到private_url
,但是当nginx在alteon后面时将public_url
提供给所有人的正确方法是什么?
默认情况下,负载平衡器会在将请求传递到上游时删除所有客户端标头。包括IP地址并将其替换为服务器的IP。在nginx中作为负载均衡器,您需要添加proxy_set_header X-Real-IP $remote_addr;
。我不确定Alteon,但是我找到了此链接来说明如何实现:https://support.radware.com/app/answers/answer_view/a_id/15085/~/how-to-insert-x-forwarded-header-for-piped-server-load-balanced-traffic-to-real