Difference between revisions of "Nginx reverse proxy BE by ip address"

From UVOO Tech Wiki
Jump to navigation Jump to search
(Created page with "https://www.cyberciti.biz/faq/nginx-redirect-backend-traffic-based-upon-client-ip-address/")
 
 
Line 1: Line 1:
 
https://www.cyberciti.biz/faq/nginx-redirect-backend-traffic-based-upon-client-ip-address/
 
https://www.cyberciti.biz/faq/nginx-redirect-backend-traffic-based-upon-client-ip-address/
 +
 +
```
 +
## apachereadonly backend ##
 +
  upstream apachereadonly  {
 +
    server 10.10.11.10:8011;
 +
    server 10.10.11.11:8011;
 +
    server 10.10.11.12:8011;
 +
    ip_hash;
 +
  }
 +
  ## apachereadwrite backend ##
 +
  upstream apachereadwrite {
 +
    server 10.10.11.13:8011;
 +
 +
  }
 +
 +
        ## config ##
 +
        location / {
 +
                proxy_set_header        Accept-Encoding  "";
 +
                proxy_set_header        Host              $http_host;
 +
                proxy_set_header        X-Forwarded-By    $server_addr:$server_port;
 +
                proxy_set_header        X-Forwarded-For  $remote_addr;
 +
                proxy_set_header        X-Forwarded-Proto $scheme;
 +
                proxy_set_header        X-Real-IP        $remote_addr;
 +
                ## default backend
 +
                proxy_pass  http://apachereadonly;
 +
                ## send traffic to apachereadwrite backend if ip is 1.2.3.4 ##
 +
                if ( $remote_addr ~* 1.2.3.4 ) {
 +
                        proxy_pass http://apachereadwrite;
 +
                }
 +
                proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
 +
        }
 +
        ## rest of config ##
 +
```

Latest revision as of 20:22, 10 October 2022

https://www.cyberciti.biz/faq/nginx-redirect-backend-traffic-based-upon-client-ip-address/

 ## apachereadonly backend ##
   upstream apachereadonly  {
     server 10.10.11.10:8011; 
     server 10.10.11.11:8011; 
     server 10.10.11.12:8011; 
     ip_hash; 
   }
   ## apachereadwrite backend ##
  upstream apachereadwrite {
     server 10.10.11.13:8011;

   }

        ## config ##
        location / {
                proxy_set_header        Accept-Encoding   "";
                proxy_set_header        Host              $http_host;
                proxy_set_header        X-Forwarded-By    $server_addr:$server_port;
                proxy_set_header        X-Forwarded-For   $remote_addr;
                proxy_set_header        X-Forwarded-Proto $scheme;
                proxy_set_header        X-Real-IP         $remote_addr;
                ## default backend
                proxy_pass  http://apachereadonly;
                ## send traffic to apachereadwrite backend if ip is 1.2.3.4 ##
                if ( $remote_addr ~* 1.2.3.4 ) {
                        proxy_pass http://apachereadwrite;
                }
                proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
        }
        ## rest of config ##