Kris
Kris

Reputation: 25

NGINX multiple proxy_pass configuration

I would like to use NGIX as a reverse proxy to display different URLs, pointing on the same server, but on different subfolders... The web server is different than the one on which NGIX is running.

here is my web tree, server on the same LAN (192.168.1.10 let's say, port 80...)

/www
    |- site1
      |- css
      |- js
   |- site2
   |- site3

I want to setup NGIX so when I type www.site1.com on my browser, it shows 192.168.1.10/www/site1

Is that possible ?

here is what I've done, but it didn't work :

server {
    listen 80;
    server_name www.site1.com;
    root /www/site1;

    location / {
            proxy_pass         http://192.168.1.10;
    }

}

Upvotes: 1

Views: 12680

Answers (2)

Prabath Dolawatta
Prabath Dolawatta

Reputation: 619

on the nginx server (A) you can add below configuration on same configuration(V-host) file or you can create different configuration files for each server tags under /etc/nginx/conf.d/

I have consider webserver ip is 192.168.1.10 and running port is 80

server {
       listen 80;
       server_name www.site1.com;

       location / {
           proxy_pass http://192.168.1.10;
           root /www/site1;
       }


       }

server {
       listen 80;
       server_name www.site2.com;


        location / {
                   proxy_pass http://192.168.1.10;
                   root /www/site2;
                   }
        }

server {
        listen 80;
        server_name www.site3.com;

        location / {
                 proxy_pass http://192.168.1.10;
                 root /www/site3;
                   }
        }

Upvotes: 1

NexWarner
NexWarner

Reputation: 91

If I understood correctly, you need to make the change in the web server (let's say server A). Not in the server where Nginx is running (server B).

'root' directive you have mentioned refers to server B. Nginx will simply pass all requests coming to www.site1.com to server A. There you have to configure the server to deliver content based on host name.

If server A is also running Nginx, you can have a configuration like below in server A.

server {
    listen 80;
    server_name www.site1.com;
    root /www/site1;
}

server {
    listen 80;
    server_name www.site2.com;
    root /www/site2;
}

server {
    listen 80;
    server_name www.site3.com;
    root /www/site3;
}

Upvotes: 0

Related Questions