Symptoms
-
Plesk is running behind a load balancer, forwarder, or reverse proxy (Cloudflare, Google Cloud Load Balancer)
-
Internal IP address of load balancer or proxy is displayed in domain logs (Domains > example.com > Logs) instead of the client’s IP (real visitor’s IP):
Access 192.0.2.2 200 GET / HTTP/1.0
Cause
Proxies and load balancers rewrite origin IP address and specify the client’s IP address in an additional HTTP header.
Resolution
With nginx enabled
-
Go to Domains > example.com > Apache & nginx Settings, and add the following content to the Additional nginx directives:
-
For Cloudflare:
real_ip_header CF-Connecting-IP;
-
For Google Cloud Load Balancing:
set_real_ip_from 130.0.0.0/8;
set_real_ip_from 35.0.0.0/8;
real_ip_header X-Forwarded-For;
real_ip_recursive on;Note: It might be required to add other IP address ranges to the set_real_ip_from based on the Google Compute Engine zone used.
If it is needed to apply the directive for all domains on a server, apply instructions from this article: How to add additional nginx directives globally
-
With Apache only
-
Go to Domains > example.com > Apache & nginx Settings and add the following content to both Additional directives for HTTP and Additional directives for HTTPS:
Note: The remoteip module should be enabled in Tools & Settings > Apache Web Server
-
For Cloudflare:
RemoteIPHeader CF-connecting-IP
-
For Google Cloud Load Balancing:
RemoteIPHeader X-Forwarded-For
RemoteIPexternalProxy 130.0.0.0/8
RemoteIPInternalProxy 35.0.0.0/8
-
If the solution for Cloudflare did not help. Server wide settings:
-
Edit file
/etc/nginx/conf.d/cloudflare_ip.conf
and add the following:set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 104.16.0.0/12;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 131.0.72.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 2400:cb00::/32;
set_real_ip_from 2606:4700::/32;
set_real_ip_from 2803:f800::/32;
set_real_ip_from 2405:b500::/32;
set_real_ip_from 2405:8100::/32;
set_real_ip_from 2c0f:f248::/32;
set_real_ip_from 2a06:98c0::/29;
real_ip_header CF-Connecting-IP;Note: For the definitive source of Cloudflare’s current IP ranges refer https://www.cloudflare.com/ips/
-
Restart nginx
# service nginx restart
Note: For additional information on proper HTTP headers with the client’s IP address for non-listed services contact the support of the proxy/load-balancing service or its system administrator.