Przekieruj żądanie IP z Nginx do dzienników Apache
Używam nginx jako zewnętrznego zwrotnego serwera proxy dla Apache, mam następującą konfigurację w nginx:
location/{
if (-f $request_filename) {
add_header X-Static hit;
access_log off;
} if (!-f $request_filename) {
proxy_pass [url=https://127.0.0.1:8000;]https://127.0.0.1:8000;[/url]
add_header X-Static miss;
}
Z nasłuchiwaniem apache na porcie 8000 lokalnie. Kiedy patrzę na dzienniki Apache, wszystkie żądania pochodzą z 127.0.0.1:443 (gdzie znajduje się nginx). Chcę przekierować prawdziwy adres IP na apache, aby poprawnie zapisał go w dziennikach.
Próbowałem dodać następujące wiersze do bloku lokalizacji, ale bezskutecznie
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
Czy brakuje mi tu kroku? Czy muszę zmienić format dziennika Apache? Aktualnie używany jest domyślny dziennik łączony.
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
3 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
na przykład
Następnie możesz użyć
Więc ostatnim wpisem w twoim logu będzie nagłówek, który nginx ustawia dla prawdziwego adresu IP. Możesz oczywiście zmienić kolejność w linii LogFormat.
Anonimowy użytkownik
Potwierdzenie od:
mod_rpaf moduł apache
http://stderr.net/apache/rpaf/
W deb/ubuntu możesz zainstalować nazwę pakietu libapache2-mod-rpaf
Po instalacji dodaj swój adres IP nginx do parametru RPAFproxy_ips w/etc/apache2/mods-available/rpaf.conf
Zrestartuj Apache i powinieneś zobaczyć prawidłowe adresy IP w swoich dziennikach.
Zachowałbym to również w twojej konfiguracji nginx:
Anonimowy użytkownik
Potwierdzenie od: