2013-12-20 3 views
0

У меня есть следующий Nginx конфигурации для моего виртуального хоста:Nginx разных местах на одном виртуальном хосте

server { 
    listen  80; 
    server_name myproject; 

    location/{ 
     root /var/www/project1; 
    } 

    location /project2 { 
     root /var/www/project2; 
    } 
} 

Но веб-сервер показывает следующее сообщение об ошибке:

location "/" is outside location "/project2" 

Я хочу, чтобы открыть первый проект через: http://myproject и второй проект через http://myproject/project2

Что случилось с моей конфигурацией?

ответ

0

У вас должен быть только один root в вашем блоке server{}. Читайте о подводных камнях Nginx здесь: http://wiki.nginx.org/Pitfalls и посмотрите на часть о «Корневом внутреннем блоке».

Поместите root вне блоков местоположения и установите его в /var/www. Поместите свой индексный файл (и другие файлы) для проекта1 в /var/www. Создайте папку (/var/www/project2) и поместите индекс и т. Д. Для project2 в этой папке.

Вы можете оставить часть location /project2 {}, если вы не хотите указывать другие параметры для этого проекта. Если настройки полностью отличаются от проекта 1, я рекомендую переместить весь материал для проекта2 в другой блок server{} и указать его корень и другие настройки там.

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