Gdy używamy haproxy (czy jakiegokolwiek innego proxy) pojawia się mały problem, mianowicie backend widzi wszystkie połączenia jako pochodzące z IP maszyny. Jest to problemem przy logowaniu oraz dla niektórych aplikacji. Większość serwerów WWW ma moduł który pozwala na “odzyskanie” IPka z nagłówka “X-Forwarded-For”. Oczywiście Twoje proxy musi umieć przekazywać taki nagłówek ale większość robi to domyślnie albo potrafi po włączeniu odpowiednich opcji (np. haproxy: option forwardfor except 127.0.0.1)

Tak na szybko:

Lighttpd:

server.modules              = (
            "mod_access",
            "mod_alias",
            "mod_accesslog",
            "mod_extforward",
            "mod_expire",
            "mod_compress",
            "mod_rewrite",
            "mod_extforward",
)

extforward.headers = ("X-Forwarded-For")
extforward.forwarder = ("127.0.0.1" => "trust")

extforward musi być po mod_accesslog, inaczej logi nie będą widzieć tego “prawdziwego” IPka (tak wiem, dziwne)

Apache

# aptitude install libapache2-mod-rpaf

(w debianie uruchamia się automatycznie z konfigiem “ufającym” 127.0.0.1, jak Twoje proxy jest gdzie indziej zmień w /etc/apache2/mods-available/rpaf.conf)

Nginx

    set_real_ip_from 127.0.0.1;
    real_ip_header X-Forwarded-For;

wymaga nginxa ze squeeze, w lennym jest trochę za stary

Related Posts: