Eu sei que não é 100% o que você pediu, mas é fácil de colocar um servidor NGINX na frente do Apache um, e tem melhor desempenho na maioria das vezes. Nginx config (com cache) é tão simples como ...
http{
proxy_cache_path /my_nginx_cache_folder levels=1:2 keys_zone=my_nginx_cache:2g max_size=2g
inactive=30d use_temp_path=off;
server {
listen 443 ssl;
server_name www.mydomain.com;
ssl_certificate /etc/letsencrypt/live/www.mydomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.mydomain.com/privkey.pem;
location / {
proxy_pass http://mydomain-on-anotherip.com:8081;
# the domain to request at the above IP
proxy_set_header Host mydomain.com;
proxy_set_header X-Real-IP $remote_addr;
# for this path, tell it to use the cache defined above
proxy_cache my_nginx_cache;
}
}
}
Eu fiz isso com muitos dos meus servidores e ele funciona muito bem, e no seu servidor de origem, você pode especificar cabeçalhos de cache, para que o servidor NGINX superior irá armazenar em cache-los durante o tempo que você especificar:
<?php
$cache_seconds = 60*60*24;
header("Expires: ".gmdate('D, d M Y H:i:s \G\M\T', time()+$cache_seconds));
header("Cache-Control:public, max-age=".$cache_seconds);
?>
Com uma configuração semelhante, minhas estatísticas mostram páginas carregam em 0,250 segundos, de 0,800 segundos.