我正在写一个需要代理的nginxconfiguration,我需要原始的ip地址。 Nginx的HttpProxyModule的$proxy_add_x_forwarded_forvariables似乎完全适合于这个任务,除了我的Nginx是在一个负载均衡的后面设置的不是X-Forwarded-For ,而是X-Cluster-Client-Ip 。
现在,有一种可能会使用
set X-Forwarded-For $http_x_cluster_client_ip,$proxy_add_x_forwarded_for
但有时直接访问服务器,这将在头部留下一个逗号。 我想过if使用,但是这种情况if在if有问题的情况下使用。
请注意,因为客户端可能已经被代理了,所以我希望保留X-Forwarded-For头部中存在的任何数据(如果存在), 以及从X-Cluster-Client-Ip传递数据。
任何替代品?
您可以使用nginx HttpRealipModule来过滤来自Loadbalancer的访问:
set_real_ip_from 192.168.0.1; real_ip_header X-Cluster-Client-Ip;