Skip to content
TrySitePrice

Nginx: Redirect Backend Traffic Based Upon Client IP Address

Best/Tutorial

You can redirect backend traffic based upon the client's IP address in Nginx by using the nginx location block and the proxy_pass directive. Here's an example:

http {
 server {
 listen 80;
 server_name example.com;

 location / {
 # Redirect client with IP address 10.0.0.1 to backend server A
 if ($remote_addr = "10.0.0.1") {
 proxy_pass http://backend-server-A;
 }
 # Redirect client with IP address 10.0.0.2 to backend server B
 if ($remote_addr = "10.0.0.2") {
 proxy_pass http://backend-server-B;
 }
 # Redirect all other clients to backend server C
 proxy_pass http://backend-server-C;
 }
 }
}

In this example, if the client's IP address is 10.0.0.1, Nginx will redirect their traffic to backend-server-A. If the client's IP address is 10.0.0.2, Nginx will redirect their traffic to backend-server-B. All other clients will be redirected to backend-server-C.

Note that the backend-server-A, backend-server-B, and backend-server-C should be replaced with the actual hostnames or IP addresses of the backend servers. Also, make sure that the backend servers are properly configured and accessible from the Nginx server.