Re: upload progress и 404 Not Found

Igor Sysoev igor на sysoev.ru
Ср Авг 31 13:12:58 UTC 2011


On Wed, Aug 31, 2011 at 09:02:08AM -0400, locojohn wrote:
> Igor Sysoev Wrote:
> -------------------------------------------------------
> > On Wed, Aug 31, 2011 at 07:40:38AM -0400, locojohn
> > wrote:
> > 
> > >                 # glue css/js files into a
> > single file for faster
> > > loading
> > >                 rewrite
> > .*/(css|javascript)/[^,]+,.+ /glue.php last;
> > 
> > Вы действительно хотите,
> > чтобы PHP работал для каждой
> > загрузки css/javascript ?
> 
> Нет, это только для специфичных линков,
> типа таких, для "склеивания" css/javascript в
> один файл (для быстрой загрузки):
> 
> <link
> href="/css/jquery/uploadify3/uploadify.css,/jquery/ui-theme/jquery-ui-1.8.11.custom.css,/jquery/jquery.asmselect.css,/jquery/jqGrid-4.0.0/css/ui.jqgrid.css"
> rel="stylesheet" type="text/css" />
> 
> PHP скрипт это дело склеивает, gzip-ит и
> кэширует.
> 
> > Казалось бы, всё, что только
> > можно, лучше выносить в
> > статику.
> 
> когда css или js файлов так много
> подргужается, их лучше склеить в один -
> влечёт за собой заментное увеличение
> производительности.

Проиводительности где ?

На каждый запрос CSS/javascript nginx передаёт запрос в PHP,
а потом принимает ответ (даже если PHP вытащил его из кэша).

Попробуйте замерить обычным ab разницу между ститикой и PHP.
Я думаю, разница будет на порядок.

> > Ничего не могу сказать по
> > собственно проблеме, но вот
> > это лучше записать так:
> 
> >       location ~ ^(?<script_filename>.+\.php)$ {
> >           try_files  $script_filename  =404;
> > 
> 
> Спасибо.  Я был в курсе такой
> конструкции, но немного побоялся её
> использовать потому что из
> документации непонятно, как именно
> работает try_files.  То есть, если в нём
> снова указывается $script_filename, то, по
> логике, он снова триггерит тот же самый
> location, в котором он прописан, нет?    Может
> быть имеет смысл описать в
> документации, что try_files повторно не
> запускает тот же location, в котором он
> находится?

nginx никакие location'ы не триггерит и не запускает.
Он ищет соответствующий location и работает согласно тому,
что описано в location'е.

try_files проверяет существование заданных файлов и если
их не находит делает внутренний редирект или возвращает указанную
ошибку.


-- 
Игорь Сысоев
http://sysoev.ru



Подробная информация о списке рассылки nginx-ru