我通过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); }