Вопрос по – IP-клиент Varnish не входит в Apache Logs

6

Я настроил Varnish 3 с Apache, и он работает отлично. Однако я не могу зарегистрировать IP-адрес клиента в журналах Apache. Я попробовал несколько решений, гуглящих безуспешно. Прямо сейчас мой файл журнала доступа Apache регистрирует IP-адрес сервера, а не IP-адреса клиента.

Вот мои конфигурации для вашего любезного рассмотрения:

VCL Varnish: (/etc/varnish/default.vlc):http://pastebin.com/PuBqZ6fx

Apache Config

/etc/httpd/conf/httpd.conf

LogFormat & quot;% {X-Forwarded-For} i% l% u% t \ "% r \" % & gt; s% b \ "% {Referer} i \" \ & Quot;% {User-Agent} я \ & Quot; & Quot; varnishcombined

Apache Virtual Host

    ...... Другие вещи .....     ErrorLog logs / fr-error-log     Журналы CustomLog / fr-custom-log лакированные     ...... Другие вещи .....

Примечание: установлена версия Varnish: varnish-3.0.2-1.el5.x86_64

Благодарю. Рахил

Ваш Ответ

3   ответа
9

sub vcl_recv {
  # Add a unique header containing the client address
  remove req.http.X-Forwarded-For;
  set    req.http.X-Forwarded-For = client.ip;

}

Затем измените лог-формат apache

LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" varnishcombined

И теперь в вашем Virtualhost

<VirtualHost *:8080>
  ServerName www.abc.com

  CustomLog /var/log/httpd/www.abc.com/access.log varnishcombined

</VirtualHost>
Error: User Rate Limit Exceeded
12

что у вас есть рабочий конфиг в вашем примере pastebin, это должно сработать:

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 {}.

Error: User Rate Limit Exceededamgeekblog.com/mod_rpaf-in-ubuntu-and-centosError: User Rate Limit Exceeded Raheel Dharolia
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededclient.ip + ", " + req.http.X-Forwarded-For)
Error: User Rate Limit Exceeded Raheel Dharolia
Error: User Rate Limit Exceeded
10

решение представляет собой модуль Apache. Лак добавляетX-Forwarded-For заголовок по умолчанию.

Тогда модуль Apache, какmod_rpaf (Apache 2.2) илиmod_remoteip (Apache 2.4) установит значение remote_ip на значение, переданноеX-Forwarded-For заголовок.

Это обеспечивает гораздо более надежное решение, чем простая запись значения заголовка X-Forwarded-For в ваши журналы apache. Например, он позволяет вам получить доступ к одному и тому же сайту на двух IP-адресах, через Varnish или напрямую, и сайт функционирует так, как вы ожидаете, и зарегистрирован правильно.

Error: User Rate Limit Exceededstackoverflow.com/questions/25455731/…
Error: User Rate Limit Exceeded

Похожие вопросы