В Птн, 09/10/2009 в 16:25 +0400, Igor Sysoev пишет:
> On Fri, Oct 09, 2009 at 03:45:45PM +0400, Vasiliy G Tolstov wrote:
>
> > В Птн, 09/10/2009 в 13:36 +0400, Igor Sysoev пишет:
> >
> > > Такой вариант лучше:
> > >
> > > 1) идеологически,
> > > 2) немного быстрее - нет нового поиска location'а после rewrite'а и нет
> > > двух regex'ов - "rewrite ^/(.*)$" и "location ~ \.php$".
> > >
> > > В принципе, можно обойтись и без @drupal вообще:
> > > try_files $uri $uri/ /index.php?q=$uri&$args;
> > >
> > >
> >
> >
> > Странно, но с таким вариантов не работает теперь image_cache модуль:
> >
> > первый атач - по конфигу вида:
> > 1.conf (1.log)
> >
> > второй по другому конфигу:
> > 2.conf (2.log)
> >
> > Есть ли какой-то вариант заставить try_files сработать и в этом случае?
>
> Я не совсем понял, в чём заключается неработа, но возможно, нужно поставить
> open_file_cache_errors off;
>
Нет, не помогает.
Неработа заключается в том, что в нормальном случае картинки физически
нет, запрос передается движку, он генерирует картинку и отдает.
В случае же использования try_files, опять таки nginx видит, что
картинки нет, передает управление движку (видимо уже с измененными по
сравнению с первым случае параметрами) и движок возвращает ошибку 404.
> Пара замечаний по конфигу:
> if ($http_host ~ "^blog.(.*)") {
> и прочая нужно заменить на
>
> server {
> server_name ~^blog.(.+)$;
> set $name $1;
> rewrite ^ http://$name/blog$request_ur?;
> }
>
> и прочая.
>
Спасибо, учту!
> Вместо
>
> location ~ "^/(CHANGELOG|COPYRIGHT|INSTALL\.mysql|INSTALL\.pgsql|INSTALL|LICENSE|MAINTAINERS|UPGRADE)\.txt" {
> deny all;
> }
>
> лучше сделать
> location = /CHANGELOG { deny all; }
> location = /INSTALL.mysql { deny all; }
> location = /INSTALL.pgsql { deny all; }
> location = /INSTALL { deny all; }
> и т.д.
>
>
А если таких location =200 ? тоже стоит сделать location для каждого или
регуляркой?
--
Vasiliy G Tolstov <v.tolstov@selfip.ru>
Selfip.Ru