如何禁用清漆X Forwarded For标题

我正在使用nginx <=>清漆<=> apache

我通过nginx proxy_set_header通过客户端IP清漆X-Forwarded-For $ remote_addr;

但清漆也添加X-Forwarded-For为127.0.0.1,所以Apache显示2个IP的逗号为基础。

我需要通过nginx发送IP只我想禁用添加127.0.0.1清漆

清漆版本3.0.0这里是default.vcl

后端默认{.host =“204.29.58.4”; .port =“80”; } sub vcl_recv {if(req.http.Range){return(pipe); }}

默认的vcl_recv函数(附加到你的)包含这个:

  if (req.restarts == 0) { if (req.http.x-forwarded-for) { set req.http.X-Forwarded-For = req.http.X-Forwarded-For + ", " + client.ip; } else { set req.http.X-Forwarded-For = client.ip; } } 

..正在修改标题。 为了防止这种情况发生,你应该把你的vcl_recv作为一个总是返回的完整函数来实现,而不是依赖于包含你不需要的configuration的默认行为的附加。 像这样的东西:

 sub vcl_recv { if (req.http.Range) { return(pipe); } if (req.request != "GET" && req.request != "HEAD" && req.request != "PUT" && req.request != "POST" && req.request != "TRACE" && req.request != "OPTIONS" && req.request != "DELETE") { /* Non-RFC2616 or CONNECT which is weird. */ return (pipe); } if (req.request != "GET" && req.request != "HEAD") { /* We only deal with GET and HEAD by default */ return (pass); } if (req.http.Authorization || req.http.Cookie) { /* Not cacheable by default */ return (pass); } return (lookup); }