2015-01-06 4 views
1

Я хотел бы использовать NGIX в качестве обратного прокси для отображения разных URL-адресов, указывая на один и тот же сервер, но на разные подпапки ... Веб-сервер отличается от того, на котором работает NGIX.NGINX multiple proxy_pass configuration

вот мой веб-дерево, сервер на той же локальной сети (192.168.1.10 скажем, порт 80 ...)

/WWW
      | - site1
            | - CSS
            | - JS
      | - site2
      | - site3

Я хочу, чтобы настройки NGIX так, когда я печатаю www.site1.com в моем браузере, она показывает 192.168.1.10/www/site1

Это возможно ?

здесь является то, что я сделал, но это не сработало:

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

    location/{ 
      proxy_pass   http://192.168.1.10; 
    } 

}

ответ

0

Если я правильно понял, что вам нужно внести изменения в веб-сервер (скажем, сервер А). Не на сервере, где работает Nginx (сервер B).

Директива «root», о которой вы упомянули, относится к серверу B. Nginx просто передаст все запросы, поступающие на сайт www.site1.com, на сервер A. Там вы должны настроить сервер для доставки контента на основе имени хоста.

Если сервер A также работает Nginx, вы можете иметь конфигурацию, как показано ниже: сервер 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; 
} 
2

на сервере Nginx (A) вы можете добавить ниже конфигурацию на тот же конфигурацию файла (V-хост), или вы можете создать различные конфигурационные файлы для каждого сервера тегов под /etc/nginx/conf.d/

у меня есть веб-сервер рассмотреть IP является 192.168.1.10 и работает порт 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; 
        } 
     } 
Смежные вопросы