Re: Несколько alias
softshape
nginx-forum at nginx.us
Thu Jan 17 09:33:34 UTC 2013
Ну что ж, поставим нормально :)
Есть тестовый сервер, на котором лежат два проекта. У них общий код и много
общей статики. Общая для проектов статика лежит, например, в папке
/www/statics/default, а индивидуальная статика проектов лежит в папках
/www/statics/project1 и /www/statics/project2 соответственно.
Задача следующая: при получении запроса вида
http://test.project1.ru/css/main.css сначала проверяется наличие файла
/www/statics/project1/css/main.css, если его там нет, то
/www/statics/default/css/main.css, если и там нет, то уже 404.
Аналогично для второго проекта: по запросу
http://test.project2.ru/css/main.css сначала проверяется наличие файла
/www/statics/project2/css/main.css, если его там нет, то
/www/statics/default/css/main.css или 404.
Сейчас соответствующая часть конфига для первого проекта выглядит вот так:
location ^~ /css/ {
try_files /www/statics/project1$uri /www/statics/default$uri;
expires 1d;
}
location = /favicon.ico {
#alias /www/statics/default/favicon.ico;
try_files /www/statics/project1$uri /www/statics/default$uri;
expires 30d;
}
location / {
proxy_pass http://127.0.0.1:8081/;
}
Проблема в том, что на запрос http://test.project1.ru/css/main.css мы не
получаем файл /www/statics/default/css/main.css, а получаем запрос на
прокси: http://127.0.0.1:8081/www/statics/default/css/main.css.
При запросе фавикона та же песня: http://test.project1.ru/favicon.ico дает
запрос на прокси http://127.0.0.1:8081/www/statics/default/favicon.ico,
вместо того, чтобы вернуть файл /www/statics/default/favicon.ico, который
раньше прекрасно отдавался через alias (я его тут привел
закомментированный).
Подозреваю, что мы не умеем готовить try_files или где-то недопонимаем
синтаксис.
Что мы делаем не так, и как именно нужно, чтобы так?
Posted at Nginx Forum: http://forum.nginx.org/read.php?21,235194,235205#msg-235205
Подробная информация о списке рассылки nginx-ru