Apache mod_remoteip 및 액세스 로그


9

Apache 2.4 부터 프론트 엔드 서버 (varnish, squid, apache 등)가 제공하는 x-forwarded-for 에서 클라이언트 주소를 다시 쓰기 위해 mod_extract_forwarded 대신 mod_remoteip 을 사용하기 시작했습니다 .

지금까지 모든 것이 php, cgi, wsgi 등과 같은 모듈에서 잘 작동합니다.-클라이언트 주소는 그대로 표시되지만 액세스 로그에 클라이언트 주소를 쓸 수 없었습니다 (% a, % h, % {c }ㅏ). 운이 없다-나는 항상 127.0.0.1 (localhost forward ex.)을 얻는다.

mod_remoteip을 사용할 때 클라이언트의 IP 주소를 기록하는 방법은 무엇입니까?

업데이트 : IT WORKS O_O- 아래 답변 참조


사용 / 테스트 한 특정 구성을 추가 할 수 있습니다. 하지 세부에있는 동안 또한,이 힘 도움말 : knowledgevoid.com/blog/2012/01/13/... 내가 읽고 않은 가정 httpd.apache.org/docs/trunk/mod/mod_remoteip.html#page-header aswell? stackexchange 몇 가지 질문을 읽고 싶은 : stackoverflow.com/questions/25455731/…
Dennis Nolte

구성을 다시 빌드하면 이제 작동합니다. O_O
GioMac

답변:


20

광택 구성 :

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;
    }
}

Apache 2.4 구성 섹션 :

mod_remoteip :

RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy 127.0.0.1/8

로깅 (% a가 작업을 수행함) :

LogFormat "%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

+

앞에 nginx가있는 경우 (예 : SSL 종료) :

server {
    listen       123.123.123.123:443;
    server_name  server.com;
    root         html;

    ssl                  on;
    ssl_certificate      /etc/pki/httpd/site/chain.crt;
    ssl_certificate_key  /etc/pki/httpd/site/private.key;

    ssl_session_timeout  5m;

    ssl_protocols  SSLv2 SSLv3 TLSv1;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers   on;

    location / {
        proxy_pass   http://127.0.0.1:6081;
        proxy_set_header Host $http_host;
        proxy_pass_header Server;
        proxy_set_header X-Forwarded-For $remote_addr;
    }
}

1
이 답변을 수락하면 현상금이 본인의 답변이더라도 현상금을 수여해야합니다.
mc0e

CloudFlare의 http.cf-connecting-ip 변형을 업데이트 하시겠습니까? 운 좋게도 작동하지 않았습니다. 죄송합니다.
Ruslan Abuzant

Nginx X-Forwarded-For의 경우 $ remote_addr 대신 실제로 $ proxy_add_x_forwarded_for를 사용해야합니다. $ remote_addr에는 이전 X-Forwarded-For 값이 포함되어 있지 않습니다
Andy

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.