To restore the real IP address of clients when Nginx is behind a reverse proxy, you can use the real_ip_header
directive in the http
block of your Nginx configuration file.
Here's an example of how you can use the real_ip_header
directive to restore the real IP address of clients when Nginx is behind a reverse proxy:
http { real_ip_header X-Real-IP; set_real_ip_from 10.0.0.0/8; set_real_ip_from 172.16.0.0/12; set_real_ip_from 192.168.0.0/16; # Your other http block directives go here }
In this example, the real_ip_header
directive specifies that the X-Real-IP
header should be used to restore the real IP address of clients. The set_real_ip_from
directives specify the range of IP addresses that the reverse proxy is expected to come from.
The X-Real-IP
header should be set by the reverse proxy to the real IP address of the client. When Nginx receives a request from the reverse proxy, it will use the value of the X-Real-IP
header to set the $remote_addr
variable, which can be used in your Nginx configuration to access the real IP address of the client.
For more information on the real_ip_header
and set_real_ip_from
directives, you can refer to the Nginx documentation.