# Forward data from orginal IP to a new IP

**URL:** <https://www.ruby-forum.com/t/forward-data-from-orginal-ip-to-a-new-ip/244706>\
**Category:** NGINX\
**Created:** [May 31, 2016, 11:11am UTC](https://www.ruby-forum.com/t/forward-data-from-orginal-ip-to-a-new-ip/244706 "2016-05-31T11:11:32Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Rafa\_F](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/958977/32.png) [@Rafa\_F](https://www.ruby-forum.com/u/Rafa_F)\
**Post date:** [May 31, 2016, 11:11am UTC](https://www.ruby-forum.com/t/forward-data-from-orginal-ip-to-a-new-ip/244706/1 "2016-05-31T11:11:32Z")

</div>

I have this configure file, but it is long-winded。  
in nginx, are there having one expression to handle it

server {  
listen 192.168.1.2:10000;  
proxy\_pass 192.168.0.3:10000;  
}

```
server {
    listen 192.168.1.2:10001;
    proxy_pass 192.168.0.3:10001;
}

server {
    listen 192.168.1.2:10002;
    proxy_pass 192.168.0.3:10002;
}

server {
    listen 192.168.1.2:10003;
    proxy_pass 192.168.0.3:10003;
}

server {
    listen 192.168.1.2:10004;
    proxy_pass 192.168.0.3:10004;
}

server {
    listen 192.168.1.2:10005;
    proxy_pass 192.168.0.3:10005;
}

server {
    listen 192.168.1.2:10006;
    proxy_pass 192.168.0.3:10006;
}

server {
    listen 192.168.1.2:10007;
    proxy_pass 192.168.0.3:10007;
}

server {
    listen 192.168.1.2:10008;
    proxy_pass 192.168.0.3:10008;
}

server {
    listen 192.168.1.2:10009;
    proxy_pass 192.168.0.3:10009;
}

server {
    listen 192.168.1.2:10010;
    proxy_pass 192.168.0.4:10010;
}

server {
    listen 192.168.1.2:10011;
    proxy_pass 192.168.0.4:10011;
}

server {
    listen 192.168.1.2:10012;
    proxy_pass 192.168.0.4:10012;
}

server {
    listen 192.168.1.2:10013;
    proxy_pass 192.168.0.4:10013;
}

server {
    listen 192.168.1.2:10014;
    proxy_pass 192.168.0.4:10014;
}

server {
    listen 192.168.1.2:10015;
    proxy_pass 192.168.0.4:10015;
}

server {
    listen 192.168.1.2:10016;
    proxy_pass 192.168.0.4:10016;
}

server {
    listen 192.168.1.2:10017;
    proxy_pass 192.168.0.4:10017;
}

server {
    listen 192.168.1.2:10018;
    proxy_pass 192.168.0.4:10018;
}

server {
    listen 192.168.1.2:10019;
    proxy_pass 192.168.0.4:10019;
}

```

Posted at Nginx Forum:

> **[forward data from orginal IP to a new IP](https://forum.nginx.org/read.php?2,267238,267238#msg-267238)**
>
> I have this configure file, but it is long-winded。 in nginx, are there having one expression to handle it server { listen 192.168.1.2:10000; proxy\_pass 192.168.0.3:10000; } server { listen 1

---

<div class="post-metadata">

**Author:** ![alajl](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/aca169/32.png) [@alajl](https://www.ruby-forum.com/u/alajl)\
**Post date:** [May 31, 2016, 6:15pm UTC](https://www.ruby-forum.com/t/forward-data-from-orginal-ip-to-a-new-ip/244706/2 "2016-05-31T18:15:39Z")

</div>

It seems the lock lies in the fact there is no generic way for the  
listen  
directive to specify multiple ports, so you are stuck with that much  
server  
blocks.

Now, you could use the $server\_port variable in the proxy\_pass  
directive,  
but that brings no real improvement.

## You could use configuration management tools to template configuration generation, relieving you of the burden of maintaing all those blocks by hand.

_B. R._
