ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: nginx try_files & drupal



В Птн, 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@xxxxxxxxx>
Selfip.Ru




 




Copyright © Lexa Software, 1996-2009.