2012-09-03 16 views
10

Tengo un sitio web detrás de Cloudflare, que es un proxy inverso. Esto significa que solo obtengo una o dos direcciones IP en mis registros de acceso.Registrar un encabezado HTTP en Apache2 Access Logs

Sin embargo, Cloudflare proporciona la dirección IP del visitante en los encabezados de solicitud, que supongo que puedo registrar en lugar de la estándar en un registro de acceso.

Sé cómo usar CustomLog, pero ¿hay alguna manera de guardar un encabezado HTTP en un registro de acceso de Apache?

Gracias.

Respuesta

17

Aye - echar un vistazo a la documentación - http://httpd.apache.org/docs/2.2/mod/mod_log_config.html específicamente la entrada de

%{Foobar}i 

Qué le reporte:

El contenido de Foobar: Línea (s) de cabecera en la petición enviada al servidor . Los cambios realizados por otros módulos (por ejemplo, mod_headers) afectan esto. Si está interesado en lo que el encabezado de la solicitud era antes, cuando la mayoría de los módulos habrían modificado, uso mod_setenvif copiar la cabecera en una variable de entorno interno y registrar ese valor con el % e {VARIABLE} descrito anteriormente.

así que uno suele añadir un poco de entrada como" ...% {X se reenvía para IP i} a la entrada CustomLog.

sustituir 'X-reenviado para IP' a whateever CloudFlare su servicio que recibe (que por lo general es algo así como '' "CF-Conexión-IP" ''); por ejemplo

LogFormat "%v %{CF-Connecting-IP}i (via cloudflare:%h) %l %u %t \"%r\" %>s %b" cloudflare 
CustomLog "|rotatelog.. etc" cloudflare 

en cuanto a la 'TransferLog' - véase la nota cerca de la Directiva TransferLog - que recoge la versión definida más reciente.

Dw.

Cuestiones relacionadas