route different proxy based on subdomain request in nginx

nginx, proxy

Solution

create a virtual host for each

server {
  server_name sub1.example.com;
  location / {
    proxy_pass http://127.0.0.1:xxxx;
  }
}
server {
  server_name sub2.example.com;
  location / {
    proxy_pass http://127.0.0.1:xxxx;
  }
}

And go on, change the port number to match the right port.

Problem

I have one dedicated server in that server I deployed 5 nodejs application. ``` domain name: www.nnd.com dedicated server ip: xxx.xx.x.60 ``` I had domain which is pointed to my dedicated server ip. sub domains are : ``` app1.nnd.com pointed to xxx.xx.x.60 app2.nnd.com pointed to xxx.xx.x.60 app3.nnd.com pointed to xxx.xx.x.60 app4.nnd.com pointed to xxx.xx.x.60 app5.nnd.com pointed to xxx.xx.x.60 ``` now in nginx configuration file based on the subdomain I need to route proxy. Example: ``` { listen:80; server_name:xxx.xx.x.60 location / { #here based on subdomain of the request I need to create proxy_pass for my node application } } ``` Is there any condition and how can I get the original domain name from proxy header?

Original source