Conditional access log formatting?

Hi,

I’m using haproxy infront of some NGINX instances, but only for some
instances which are being loadbalanced by haproxy, there are other
instances which go straight through.

I realise I need to change the logging format in NGINX to enable
X-Forwarded-For in the access logs.

The question is whether I can conditionally format the logs, i.e. use
“X-Forwarded-For” if it exists, otherwise use the normal NGINX logging
format.

I’ve had a quick peek at the manual, I’m thinking maybe this can be done
with a map of some sort ? Maybe there’s a better way ? To be honest
I’ve no idea where to start, and I’ve never used maps before anyway !

I suggest you use the ‘if’ parameter of 2 access_log directive
(>v1.7.0),
combined with 2 maps with reversed logic.

B. R.

On Saturday 18 July 2015 11:37:33 Ben wrote:

“X-Forwarded-For” if it exists, otherwise use the normal NGINX logging
format.

I’ve had a quick peek at the manual, I’m thinking maybe this can be done
with a map of some sort ? Maybe there’s a better way ? To be honest
I’ve no idea where to start, and I’ve never used maps before anyway !

You should use the realip module:
http://nginx.org/en/docs/http/ngx_http_realip_module.html

wbr, Valentin V. Bartenev