2014-10-19 4 views
2

Как настроить nginx на обратный прокси-сервер для одной папки на один сервер, а остальную часть корня - на другой сервер?nginx proxy_pass в каталог

Корень «/» управляется CMS, а «другое» - это мои собственные программы (независимо от CMS).

Вот моя текущая конфигурация

server { 
    listen 80; 
    server_name www.example.com; 
    rewrite ^ https://$server_name$request_uri? permanent; 
} 

server { 
    listen 443; 
    ... <ssl stuff> ... 

    server_name www.example.com; 

    location /other { 
     proxy_pass http://192.168.2.2/other ; 
    } 

    location/{ 
     proxy_pass http://192.168.1.1; 
    } 
} 

ответ

4

ссылка на Nginx документы:

http://wiki.nginx.org/HttpCoreModule#location

http://wiki.nginx.org/HttpProxyModule#proxy_pass

Вы должны изменить other расположение к этому:

location /other/ { 
    proxy_pass http://192.168.2.2/other/ ; 
} 

Обратите внимание на завершающий /. Фактически это имеет значение, поскольку для нормализации запроса он получает proxy_pass. Я цитирую:

Когда запрос передается серверу, часть нормализованного URI запроса, соответствующая местоположению, заменяется URI, указанным в директиве [proxy_pass].

Это поможет тем, кто найдет эту страницу.

+0

Thank you soo много. Мне нужен был способ использовать nginx в качестве обратного прокси-сервера, но хотелось, чтобы URL-адрес был переписан/префикс с папкой. Это работает как шарм (без папки в месте расположения)! –

Смежные вопросы