Tricky configuration rewrite rules (Symfony+FastCGI+Cache)

Gena Makhomed gmm на csdoc.com
Wed Jul 11 16:44:47 UTC 2012


On 11.07.2012 17:23, Valery N. wrote:

> location ^~ /accounts/ {
> ...
> try_files $uri /index.php?$args;
> }
> но такой подход не подходит т.к. запрос передается на обработку
> другому правилу (для *.php где стоит правила кеширования) и
> соответственно кеш не отключается.  Так же пробовал убрать try_files
> $uri /index.php?$args; но тогда NGINX выдает No input file specified

http://nginx.org/ru/docs/http/ngx_http_core_module.html#location

идея такая:

location /accounts/ {
     location ~ \.php$ {
         # тут fastcgi_pass без fastcgi_cache для отдачи динамики
     }
}

общие директивы gzip и gzip_* можно вынести на уровень server,
или даже вообще на уровень http, чтобы их не приходилось
дублировать по несколько раз в конфиге.

если убрать rewrite ^/news/(.*)\.htm$
из location / в location /news/ - тогда
регулярное выражение в rewrite будет проверяться
не для всех location`ов, а только для тех, которые начинаются с /news/

если на уровне server не будет location`ов с регулярными
выражениями, не спрятанных внутри "обычных" location`ов -
тогда не надо будет почти перед каждым location`ом
писать location ^~ для запрета обработки location`ов
с регулярными выражениями.

если блок директив fastcgi_pass часто повторяется -
его можно вынести в отдельный файл и подключать через include

-- 
Best regards,
  Gena





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