В проекте используется простой компонент, задача выводить кол-во элементов. Компонент выводится на всех детальных страницах с информацией по элементу. Это все решил повесить на стандартный механизм кеша:
Под 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; } |
Не нашел таких рекомендаций в настройках для битрикс, пришлось методом тестирования находить решение.