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