Se você estiver fazendo uma reinicialização do Apache (ou até mesmo 'graciosa'), ele fechará as alças de arquivo abertas e as abrirá novamente. Você não deve precisar de delaycompress porque o arquivo foi fechado e reaberto como parte de sua reinicialização posterior.
rotate access_log -> access_log.1 (rename action, no INODE change)
apache still writing to access_log.1 (same open FD on same INODE)
apache restart (close FD, release INODE writing)
apache writing to access_log (new FD to a new INODE)
Uma reinicialização é uma má idéia - e se o arquivo de configuração fosse acidentalmente alterado e não fosse mais válido? Seu apache não será iniciado novamente. Em vez disso, envie um HUP para o processo pai, que diz para fechar / reabrir os identificadores de arquivo.
postrotate
/bin/kill -HUP 'cat /var/run/apache2.pid 2>/dev/null' 2>/dev/null || true
endscript
cat falhará se o PID estiver ausente (ou vazio, ou inválido), causando a morte também falhará, assim você não precisará do bloco if..then
ao redor dele.