• kubernetes ingress
  • your varnish proxy cache
  • Symfony PHP application
  1. Edit your global Kubernetes Ingress Config Map in namespace ingress-nginx named nginx-configuration  and add use-forwarded-headers: true

2. In your Varnish proxy in section sub vcl_recvadd

     if (req.http.X-Original-Forwarded-For) {
         set req.http.X-Forwarded-For = req.http.X-Original-Forwarded-For;
     } else {
      set req.http.X-Forwarded-For = client.ip;

3. In you Symfony App define ENV variable  TRUSTED_PROXIES=

Now you will get right user IP from $_SERVER['REMOTE_ADDR']or when you call Request::getClientIp() in your Symfony App.

Another way without other prerequisites

Add this section to your nginx.conf (instead of x-middleton-ip you can use X-Original-Forwarded-For or X-Forwarded-For)

http {
 real_ip_recursive on;
 real_ip_header x-middleton-ip;