The duplicate HTTP headers will be combined into an comma-separated list, so your example the
'x-forwarded-for': '1.2.3.4'
'x-forwarded-for': '5.6.7.8'
will become
'x-forwarded-for': '1.2.3.4, 5.6.7.8'
This is done per HTTP RFC2616 available here:
Multiple message-header fields with the same field-name MAY be present
in a message if and only if the entire field-value for that header
field is defined as a comma-separated list [i.e., #(values)]. It MUST
be possible to combine the multiple header fields into one
"field-name: field-value" pair, without changing the semantics of the
message, by appending each subsequent field-value to the first, each
separated by a comma. The order in which header fields with the same
field-name are received is therefore significant to the interpretation
of the combined field value, and thus a proxy MUST NOT change the
order of these field values when a message is forwarded
Here you can find a related issue in node.