Question

I can't use nodejs/expressjs to get the client IP address behind a Digital Ocean Loadbalancer when using "req.headers['x-forwarded-for'];".

Posted September 14, 2018 1.5k views
Node.jsDokkuLoad BalancingUbuntu 16.04

I cannot use nodejs with expressjs to get the client IP address (enabled with ssl) behind a Digital Ocean Loadbalancer when using “req.headers[‘x-forwarded-for’];”.

To manage the droplet I use “dokku” witch installs “nginx”.

How can I get the real client IP address behind a Digital Ocean Loadbalancer with a SSL connection?

Please help me.

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

×
1 answer

I have found the error that makes “dokku” in the configuration of nginx.

You must replace
proxysetheader X-Forwarded-For $remote_addr;

TO
proxysetheader X-Forwarded-For $httpxforwarded_for;

in the following file:
/home/dokku/yourappname/nginx.conf

I hope this helps someone else as well.

Submit an Answer