Skip to content

Instantly share code, notes, and snippets.

@aramalipoor
Last active May 29, 2018 13:28
Show Gist options
  • Save aramalipoor/6ec07d16b45dfe7357b1e8fe89b7d3c5 to your computer and use it in GitHub Desktop.
Save aramalipoor/6ec07d16b45dfe7357b1e8fe89b7d3c5 to your computer and use it in GitHub Desktop.

Nginx Config for real IP when using CloudFlare

If CloudFlare cache is disabled (the cloud icon in DNS settings is turned off, i.e. gray), the nginx config in our examples would work and gives you the real IP in REMOTE_ADDR variable.

If you need to keep CF cache enabled (the cloud icon is active and orange) adding code below to nginx config will give you user's real IP in REMOTE_ADDR variable:

server {
    // ...
    
    real_ip_recursive on;
    real_ip_header X-Forwarded-For;

    # AbarCloud's LoadBalancers
    set_real_ip_from 10.0.0.0/8;

    # CloudFlare's IP Ranges
    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;

    // ...
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment