Get real client remote ip in docker-swarm httpd proxy?

I’m running a httpd apache2 proxy in docker swarm mode with docker stack deploy.

Problem: when I access mymachine:80, the access.log always show the remote ip of the docker ingress swarm network, like And not the real clients’ ip.

Question: how can I tell swarm to retain the original IP address (maybe write it into another IP header?), without having to force my container or ports into mode: host? (because then I’d lose zero-downtime deployment).