nginx кеширование
Валентин Росавицкий
valintinr at tangramltd.com
Wed Apr 17 18:48:01 UTC 2013
Здравствуйте.
Имеется следующая конфигурация : nginx + php-fpm + drupal.
Сайт с включенным модулем boost (кеширование для анонимов). После сброса
кеша появляется 502 ошибка,
в этот момент модуль активно пишет в базу, грузит диск вплотную. Сам
сервер по конфигурации неплох,
зеркало на сас дисках, 32Г памяти, 2 х E5645 (для одного сайта с 100-200
онлайна) но в этот момент просто
вешает диски, думаю это не исправить (да и не мне это делать).
Интересует возможность отдавать с кеша (не boost) страницу.
Раньше сайт вертелся на nginx+apache и это решалось через
proxy_cache_use_stale для fastcgi так не пройдет.
Таймауты для nginx и php стоят большие. Немного конфигов:
# serve imagecache files directly or redirect to drupal if they
do not exist
location ^~ /sites/default/files/imagecache/ {
access_log off;
expires 30d;
try_files $uri @rewrite;
}
location ~ \.php$ {
try_files $uri @cache;
fastcgi_pass php5-fpm; .....}
location / {
try_files $uri @cache;
}
location @cache {
if ($query_string ~ ".+") {
return 405;
}
if ($cookie_DRUPAL_UID) {
return 405;
}
if ($request_method !~ ^(GET|HEAD)$) {
return 405;
}
error_page 405 = @rewrite;
add_header Expires "Sun, 19 Nov 1978 05:00:00 GMT";
add_header Cache-Control "no-store, no-cache, must-revalidate,
post-check=0, pre-check=0";
try_files /cache/normal/$host/${uri}_.html
/cache/perm/$host/${uri}_.css /cache/perm/$host/${uri}_.js
/cache/$host/0$uri.html /cache/$host/0${uri}/index.html @rewrite;
}
location @rewrite {
rewrite ^/(.*)$ /index.php?q=$1 last;
}
error_page 502 =301 @cache;
Подробная информация о списке рассылки nginx-ru