По умолчанию, если включить в админке битрикс композитный режим, заголовки last-modified и ответ на If-Modified-Since работают без дополнительных настроек. Но, есть нюанс. Если композит отдаётся через php, то поисковые боты, браузеры и этот сервис http://tools.seo-auditor.com.ru/if-modified-since/ видят правильные ответы. Они используют метод GET

При этом данный, очень популярный сервис https://last-modified.com/ru/if-modified-since.html не видит этих заголовков. Он использует метод HEAD.

Если клиент очень любит этот сервис, то можно добавить конверсию заголовков HEAD в GET
Если композит отдаётся через php, добавляем в /etc/nginx/bx/conf/bitrix.conf
location @force_get {
recursive_error_pages on;
proxy_method GET;
proxy_pass $proxyserver;
}
# directories page processing
location ~ /$ {
error_page 550 = @force_get;
if ($request_method = HEAD) { return 550; }
...
proxy_pass $proxyserver;
}
Если композит отдаётся через nginx, добавляем в /etc/nginx/bx/site_enabled/конфиг_сайта
location @force_get {
recursive_error_pages on;
proxy_method GET;
proxy_pass $proxyserver;
}
# main location with processing composite
location / {
error_page 550 = @force_get;
if ($request_method = HEAD) { return 550; }
...
proxy_pass $proxyserver;
}

При этом, если настроить отдачу композита через nginx,
./menu.sh - 6. Manage sites in the pool - 9. Configure nginx for composite
то, данный сервис tools.seo-auditor.com.ru/if-modified-since/ заявляет 304 Not Modified не найден

Данный инструмент подтверждает отсутствие реакции на if-modified-since, при данных настройках. webmaster.yandex.ru/tools/server-response/
Отсюда вопрос, каким образом можно настроить корректную реакцию на if-modified-since при включении композитной технологии битрикса и отдачи композитного кеша через nginx?
В моём конфиге bitrixenv 7.1.0, такой location в bitrix_general выглядит по другому.
# Cache location: composite and general site
location ~* @.*\.html$ {
internal;
# disable browser cache, php manage file
expires -1y;
add_header X-Bitrix-Composite "Nginx (file)";
}
Изначально пробовал использовать exact, но тогда webmaster.yandex и tools.seo-auditor, начинают указывать на отсутствие 304 Not Modified
Часовой пояс на сервере настроен корректно.
Мой /etc/nginx/bx/site_enabled/ssl.s1.conf — https://pastebin.com/JUWwLfiV
Мой /etc/nginx/bx/conf/bitrix_general.conf — https://pastebin.com/mgx9JXn8
Попробовал добавить exact в указанный location - 304 Not Modified не найден
С before — работает.