Как отключить лак X Forwarded для заголовка
Я использую nginx <=> лак <=> apache
я передаю клиентский IP на лак через nginx proxy_set_header X-Forwarded-For $ remote_addr;
но лак также добавляет X-Forwarded-For как 127.0.0.1, так что apache показывает 2 IP-адреса через запятую.
мне нужно, чтобы IP отправлял только через nginx я хочу отключить добавление лака 127.0.0.1
версия лака 3.0.0 здесь это default.vcl
backend default {.host = "204.29.58.4";.port = "80"; } sub vcl_recv {if (req.http.Range) {return (pipe); }}
1 ответ
По умолчанию 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
реализован как полная функция, которая всегда возвращает, вместо зависимости от добавления поведения по умолчанию, которое содержит конфигурацию, которая вам не нужна. Что-то вроде этого:
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);
}