nginx中的条件variables设置

我正在写一个需要代理的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使用,但是这种情况ifif有问题的情况下使用。

请注意,因为客户端可能已经被代理了,所以我希望保留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; 

http://wiki.nginx.org/HttpRealipModule