2

I have a number of sites using cloudflare as a CDN with the apache mod_cloudflare installed to restore original visitor IPs to my server logs. Does anyone know of a way I can make the logs identify which requests came via cloudflare and which didn't?

1

I took a look through the source code for mod_cloudfare.c: https://github.com/cloudflare/CloudFlare-Tools/blob/master/mod_cloudflare.c. It appears that the module logs the information you are looking for:

ap_log_rerror(APLOG_MARK, APLOG_INFO|APLOG_NOERRNO, 0, r,
              conn->proxy_ips
                  ? "Using %s as client's IP by proxies %s"
                  : "Using %s as client's IP by internal proxies",
              conn->proxied_ip, conn->proxy_ips);

Based on this code, it appears this information will appear in the error log. It does not appear that module has any facility for modifying other parts of the request to identify modified entries in the access_log.

If there are headers that cloudflare sends that you wish to log, you can append them to your access_log using %{Foobar}i in the log file definition where "Foobar" is the name of the header. For example you might choose your log format as:

"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" %{CF-Connecting-IP}i
  • Cloudflare do add some custom HTTP headers - would there be an easy way of looking for these and logging them? – cbull Mar 13 '13 at 10:50
  • You can log custom headers. I updated my answer with information. – Stephen Ostermiller Mar 13 '13 at 10:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.