SSI

Включение SSI - работает на уровнях http, server, location, if в location:

nginx.conf
server {
 
  location /ssi/ {
    ssi on;
    ...
  }
 
}

Если nginx используется как прокси (например, фронт перед apache), то при включении сжатия nginx не сможет разобрать SSI конструкции. Проверка: curl -I -H 'Accept-Encoding: gzip,deflate' {URI}

Лечение - 1 способ - отключение модуля полностью:

a2dismod deflate

Лечение - 2 способ - исправить заголовки, чтобы апач не сжимал:

nginx.conf
location /ssi/ {
  ssi on;
  proxy_set_header Accept-Encoding '';
  proxy_set_header User-Agent 'IamSSI';
  include common-locations/apache-proxy.conf;
}

В апаче проверяем, если User-Agent IamSSI - то не кешируем:

.htaccess
<IfModule mod_deflate.c>
  <IfModule mod_filter.c>
    # these are known to be safe with MSIE 6
    AddOutputFilterByType DEFLATE text/html text/plain text/xml
 
    # everything else may cause problems with MSIE 6
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE application/x-javascript application/javascript application/ecmascript
    AddOutputFilterByType DEFLATE application/rss+xml
    AddOutputFilterByType DEFLATE application/xml
  </IfModule>
  <IfModule mod_setenvif.c>
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
    SetEnvIf User-Agent IamSSI !no-gzip !gzip-only-text/html
  </IfModule>
</IfModule>

Вложение динамического блока

Будет вызван URL ssi.inc.php и его результат - вложен в ответ:

response.html
<!--#include virtual="/ssi.inc.php" -->