Если у вас на сервере стоит nginx, то могу предложить следующее решение:
Допустим:
ip сервера site.ru: 1.1.1.1;
ip маршрутизатора, который связывает NAT и Сеть: 2.2.2.2.
В маршрутизаторе проброс портов:
5050 на 192.168.1.1:5050;
4040 на 192.168.1.2:4040;
3030 на 192.168.1.3:3030.
И так далее.
В nginx.conf пишете:
server {
listen 1.1.1.1:80;
server_name: app1.site.ru;
location / {
proxy_pass http: //2.2.2.2:5050; #убрать пробел после http:, а то парсер съел.
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
И соответственно на другие домены.
По данной схеме сервер с app1.site.ru будет направлять на 2.2.2.2:5050, маршрутизатор через Port Forwarding перенаправит уже на 192.168.1.1:5050.
Тут всё примерно, и ещё есть куда улучшать, но думаю смысл ясен. Это всё при условии что я вас правильно понял :)