Как отключить лак 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);
}
Другие вопросы по тегам