Para el manejo de caché en Apache, debemos seguir los siguientes pasos:

1.- Habilitar los módulos de caché de Apache.

 Copiar código
sudo chown -R www-data:www-data /var/cache/apache2/mod_cache_disk
sudo chmod -R 755 /var/cache/apache2/mod_cache_disk
sudo apt-get install apache2-utils
sudo a2enmod expires
sudo a2enmod cache
sudo a2enmod cache_disk
sudo a2enmod headers
sudo systemctl restart apache2

2.- Configurar el caché en el disco:
Debemos movernos a la ruta donde están los archivos de configuración:

 Copiar código
cd /etc/apache2/sites-available/

3.- Modificar el archivo de configuración del sitio, por ejemplo:

 Copiar código
sudo nano ejemplo.com.conf

4.- Una vez en el modo de edición, veremos probablemente la configuración básica como esta:

Listen 8084

<VirtualHost *:8084>
	ServerAdmin tu-email@email.com
	ServerName ejemplo.com
	ServerAlias ejemplo.com
	DocumentRoot /var/www/ejemplo.com

	WSGIDaemonProcess app-ejemplo user=www-data group=www-data threads=6 python-home=/var/www/ejemplo.com/.venv
	WSGIScriptAlias / /var/www/ejemplo.com/ejemplo.com.wsgi

	# dentro de tu proyecto debe existir la carpeta log para que dentro de esa se almacenen los logs
	ErrorLog /var/www/ejemplo.com/log/error.log
	CustomLog /var/www/ejemplo.com/log/access.log combined

	<Directory /var/www/ejemplo.com>
		WSGIProcessGroup app-ejemplo
		WSGIApplicationGroup %{GLOBAL}
		#Order deny,allow
		Require all granted
	</Directory>

</VirtualHost>

Dentro de la configuración, de preferencia después del cierre del tag </Directory>, agregaremos la siguiente información:

 Copiar código
# Habilitar caché para todas las solicitudes
CacheEnable disk /
	
# Configuración de caché
<IfModule mod_cache_disk.c>
	CacheRoot /var/cache/apache2/mod_cache_disk
	CacheDirLevels 2
	CacheDirLength 1
	# [bytes] Tamaño máximo de archivo a almacenar en caché
	CacheMaxFileSize 1000000
	# CacheMinFileSize bytes
	CacheMinFileSize 1
	CacheIgnoreHeaders Set-Cookie
	CacheIgnoreNoLastMod On
		
	<FilesMatch "\.(jpg|jpeg|png|gif|css|js)$">
		# Indica si el caché está funcionando
		Header set X-Cache "HIT from Apache"
		# Expiración por defecto (1 hora)
		CacheDefaultExpire 3600
		# Expiración máxima (1 día)
		CacheMaxExpire 86400
		CacheLastModifiedFactor 0.5
	</FilesMatch>
</IfModule>
	

5.- El nuevo archivo de configuración debería de verse como el siguiente:

 Copiar código
Listen 8084

<VirtualHost *:8084>
	ServerAdmin tu-email@email.com
	ServerName ejemplo.com
	ServerAlias ejemplo.com
	DocumentRoot /var/www/ejemplo.com
	
	WSGIDaemonProcess app-ejemplo user=www-data group=www-data threads=6 python-home=/var/www/ejemplo.com/.venv
	WSGIScriptAlias / /var/www/ejemplo.com/ejemplo.com.wsgi
	
	# dentro de tu proyecto debe existir la carpeta log para que dentro de esa se almacenen los logs
	ErrorLog /var/www/ejemplo.com/log/error.log
	CustomLog /var/www/ejemplo.com/log/access.log combined
	
	<Directory /var/www/ejemplo.com>
		WSGIProcessGroup app-ejemplo
		WSGIApplicationGroup %{GLOBAL}
		#Order deny,allow
		Require all granted
	</Directory>

	# INICIO MANEJO CACHE APACHE
	# Habilitar caché para todas las solicitudes
	CacheEnable disk /
		
	# Configuración de caché
	<IfModule mod_cache_disk.c>
		CacheRoot /var/cache/apache2/mod_cache_disk
		CacheDirLevels 2
		CacheDirLength 1
		# [bytes] Tamaño máximo de archivo a almacenar en caché
		CacheMaxFileSize 1000000
		# CacheMinFileSize bytes
		CacheMinFileSize 1
		CacheIgnoreHeaders Set-Cookie
		CacheIgnoreNoLastMod On
		
		# archivos en especifico:
		<FilesMatch "\.(jpg|jpeg|png|gif|css|js)$">
			# Indica si el caché está funcionando
			Header set X-Cache "HIT from Apache"
			# Expiración por defecto (1 hora)
			CacheDefaultExpire 3600
			# Expiración máxima (1 día)
			CacheMaxExpire 86400
			CacheLastModifiedFactor 0.5
		</FilesMatch>
	</IfModule>
	# FINAL MANEJO CACHE APACHE

</VirtualHost>

6.- Para aplicar los cambios realizados en el archivo de configuración, debemos recargar Apache:

 Copiar código
sudo systemctl reload apache2