Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: бага или фича?
Hello!
On Fri, Sep 24, 2010 at 09:59:50AM -0400, Dmitry Veselov wrote:
> Интересный момент, что если вместо
>
> location ~* \.(css|flv|gif|html|jpg|js|png|swf|xml)$ {
>
> поставить
>
> location / {
>
> То есть, кэширование всего сразу, то
> отваливаются индексные файлы index.html, и
> nginx выдает ошибку 403 при любой линке
> типа http://www.bla-bla.com/link/ даже если ему
> прописать в конфигурации директиву index
> index.html
> [b]Притом происходит это не сразу, а
> через несколько минут ? возможно когда
> устаревает кэш.[/b]
proxy_store - это не кеш, а способ локального сохранения файлов.
И про индексы ничего не знает. И если файл с указанным именем
сохранить невозможно - он его просто не сохранит.
При этом proxy_store on; - задаёт простой маппинг в файловую
систему с учётом root/alias.
В результате:
- Первый запрос к /link/ не найдёт каталога /path/to/root/link и
вернёт 404. После чего пойдёт к бекенду и пытается сохранить
файл /path/to/root/link/, и по очевидным причинам у него это не
получится. В error_log'е должно быть про это. Вообще, читать
error_log - полезно.
- Любой запрос к файлу в /link/blah создаст каталог
/path/to/root/link, и в нём файл blah.
- Любой последующий запрос к /link/ найдёт каталог
/path/to/root/link, и будет пытаться искать в нём индексный
файл, не найдёт, убедится что autoindex выключен и вернёт 403
(есть каталог, но смотреть индекс прав нет).
Вариантов решения приблизительно два:
1. Написать proxy_store с использованием переменных, и где явно
указать что запросы заканчивающиеся на '/' нужно сохранять в
нужный вам индексный файл. При этом не забыть ещё и добавить
обработку 403 - потому что ситуацию, когда запросят сначала
/link/blah, а уже потом /link/ - никто не отменял.
2. Не использовать инструмент который вы не понимаете, а
использовать proxy_cache. Он гораздо более предназначен для
задач кеширования.
Maxim Dounin
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru
|