Maxim Dounin
September 24, 2010 11:54AM
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@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

бага или фича?

Dmitry Veselov September 24, 2010 09:59AM

Re: бага или фича?

Никита Козлов September 24, 2010 10:28AM

Re: бага или фича?

Maxim Dounin September 24, 2010 11:54AM

Re: бага или фича?

Dmitry Veselov September 27, 2010 03:34AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 194
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready