How to get real client ip when using lxd to forward port 80

Docker containers face the same issue in swarm mode.
Unable to retrieve user’s IP address in docker swarm mode
The discussion how haproxy solves this issue:
Preserve source IP address despite reverse proxies