В проекте используется простой компонент, задача выводить кол-во элементов. Компонент выводится на всех детальных страницах с информацией по элементу. Это все решил повесить на стандартный механизм кеша:
Под Apache, все работает корректно. На сервере под nginx, вызов компонента на разных страницах элементов, генерировал новый кеш, который используется только на текущей странице элемента. В результате папка с данными по кешу растет пропорционально посещению страниц элементов.
После дебага, выявилось, что переменная $_SERVER['SCRIPT_NAME'] содержит url страницы, а не "/bitrix/urlrewrite.php". Как решение в настройках конфига nginx добавил запись: "fastcgi_param SCRIPT_NAME /bitrix/urlrewrite.php;", получилось следующее:
Не нашел таких рекомендаций в настройках для битрикс, пришлось методом тестирования находить решение.
if ($this->StartResultCache())
{
$arResult = []; // Тут логика выборки из базы
$this->IncludeComponentTemplate();
}
|
Под Apache, все работает корректно. На сервере под nginx, вызов компонента на разных страницах элементов, генерировал новый кеш, который используется только на текущей странице элемента. В результате папка с данными по кешу растет пропорционально посещению страниц элементов.
После дебага, выявилось, что переменная $_SERVER['SCRIPT_NAME'] содержит url страницы, а не "/bitrix/urlrewrite.php". Как решение в настройках конфига nginx добавил запись: "fastcgi_param SCRIPT_NAME /bitrix/urlrewrite.php;", получилось следующее:
location @bitrix {
fastcgi_pass unix:$phpsocket;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/bitrix/urlrewrite.php;
fastcgi_param SCRIPT_NAME /bitrix/urlrewrite.php;
} |
Не нашел таких рекомендаций в настройках для битрикс, пришлось методом тестирования находить решение.