Vous êtes ici : Installer et exploiter → Installation → Serveur applicatif → Apache
Installation d'Apache
Procédure d'installation du serveur Apache
Cette page décrit les étapes d'installation et de configuration d'Apache, à installer sur le serveur applicatif.
1 - Installation
- Sur Debian :
apt-get install apache2
- Sur Redhat :
yum install httpd mod_ssl
2 - Configuration
Déclaration du site
La déclaration d'un site nécessite l'ajout du fichier Virtualhost dans la configuration Apache.
Le fichier .conf est à créer dans le dossier /etc/apache2/site-available/ sur Debian, ou dans /etc/httpd/conf.d/ sur Redhat.
L'exemple ci-dessous présente une configuration minimale qui devra être adaptées aux spécificités du projet si besoin.
<VirtualHost *:80>
ServerName %HOST%
ServerAlias %ALIAS%
ServerAdmin %MAIL@ADMIN%
DocumentRoot %WEBAPP_HOME%
ErrorLog /var/log/apache2/%WEBAPP_NAME%-error.log
CustomLog /var/log/apache2/%WEBAPP_NAME%-access.log combined
AddType font/ttf .ttf
AddType font/eot .eot
AddType font/otf .otf
AddType font/woff .woff
ErrorDocument 404 /servlet/com.kportal.core.ErrorServlet?CODE=404
ErrorDocument 500 /servlet/com.kportal.core.ErrorServlet?CODE=500
<FilesMatch "\.(ttf|otf|eot|woff)$">
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
</FilesMatch>
<Directory "%WEBAPP_HOME%">
Options None
AllowOverride None
DirectoryIndex index.jsp
Require all granted
</Directory>
</VirtualHost>
avec
- %ADRESSE_IP% : adresse IP du serveur. L'adresse spécifiée est l'IP externe du serveur, c'est-à-dire l'interface à partir de laquelle Apache va réceptionner les requêtes HTTPS. De plus, il est possible d'utiliser le caractère "*" si on ne souhaite pas préciser cette adresse
- %PORT% : port d'écoute du apache. Pour un serveur HTTP, utiliser le port 80, pour un serveur HTTPS, le port 443.
- %MAIL@ADMIN% : mail de l’administrateur système du serveur
- %HOST% : nom de domaine principal auquel le serveur doit répondre en HTTPS
- %ALIAS% : nom de domaine ou ensemble de noms de domaine secondaires auxquels doit aussi répondre le serveur en HTTPS. Il est possible d'utiliser le caractère "*" pour indiquer que votre virtualhost répond à toutes les demandes qui lui sont transmises, peu importe le nom de domaine
- %WEBAPP_HOME% : chemin absolu où est installée l'application K-Sup/K-Portal (voir ici). Ce chemin est utilisé par Apache pour servir les ressources statiques de l'application.
- %WEBAPP_NAME% : nom de l'application (par défaut : "ksup" ou "kportal")
Activation du HTTPS
Pour activer le HTTPS, il faut rajouter à la configuration du virtualhost le chemin vers le certificat et modifier le port :
SSLEngine on
SSLCertificateFile %PATH%/certificate.crt
SSLCertificateKeyFile %PATH%/certificate.key
SSLCACertificateFile %PATH%/certificate.pem
avec
- %PATH% : chemin vers les fichiers du certificat HTTPS
Activation du site
Pour la prise en compte de votre fichier de configuration et l'activation du site, exécutez les commandes suivantes :- Sur Debian :
a2ensite [monfichier].conf service apache2 reload
- Sur Redhat :
service httpd reload
Configuration du module mod_proxy
Les modules mod_proxy nécessaires au fonctionnement sont installés en standard avec apache/httpd.Activation du module
- Sur Debian :
a2enmod proxy a2enmod proxy_http
- Sur Redhat : éditer le fichier /etc/httpd/conf/httpd.conf
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so
Configuration du module
Dans la configuration du Virtualhost, ajouter
ProxyPreserveHost on
ProxyPass "/" "http://localhost:8080/"
ProxyPassReverse "/" "http://localhost:8080/"
Si vous optez pour une configuration utilisant le protocole AJP au lieu du protocole HTTP pour communiquer avec le serveur tomcat, consulter la documentation d'Installation d'Apache mod_jk
3 - Configurations avancées
Activation mod_cache (optionnel)
- Sur Debian :
a2enmod cache a2enmod cache_disk
- Sur Redhat : éditer le fichier /etc/httpd/conf/httpd.conf
LoadModule cache_module modules/mod_cache.so LoadModule cache_disk_module modules/mod_cache_disk.so
Configuration
Dans le Virtualhost, ajouter la configuration suivante :
Les URL ci-dessous sont données à titre indicatif
La liste des URLS à mettre en cache devra être adaptée à la structure et aux spécificités du projet
CacheRoot "/tmp/a2cache"
CacheDirLevels 5
CacheDirLength 3
CacheIgnoreURLSessionIdentifiers jsessionid
CacheMaxExpire 86400
CacheDefaultExpire 86400
CacheIgnoreHeaders Set-Cookie
CacheEnable disk "/wro/"
CacheEnable disk "/jsp/styles/"
CacheEnable disk "/jsp/images/"
CacheEnable disk "/jsp/scripts/"
CacheEnable disk "/images/"
Pour limiter l'espace disque utilisé par le cache, il faut lancer la commande htcacheclean en mode démon
Par exemple, pour limiter la taille du cache à 15Mo (selon votre environnement, il faut lancer la commande avec sudo),
htcacheclean -d5 -l15M -t -p /tmp/a2-cache
Toutes les 5 minutes (-d5), un nettoyage de cache sera réalisé afin de maintenir le cache à 15Mo environ.Pour arrêter proprement le démon, vous pouvez lui envoyer un signal TERM ou INT, par exemple via la commande kill <PID> où >PID> et l'identifiant du processus htcacheclean.
Important Il est préférable de vider le cache à chaque livraison par la commande :
htcacheclean -l1k -t -p /tmp/a2-cache
ou, après avoir stoppé le serveur apache, de manière plus brutale avec un rm
rm -Rf /tmp/a2-cache/*
Configuration en cas de reverse proxy
Dans le cas d'une infrastructure située derrière un loadbalancer principal gérant la sécurité (SSL), le Virtualhost du serveur Apache mandataire doit transmettre les informations originelles de la requête.Dans la configuration du Virtualhost, il suffit d'ajouter les éléments suivants :
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Port "443"
4 - Redémarrage
Pour la prise en compte des modifications réalisées, il faut relancer le service :
- Sur Debian :
service apache2 restart
- Sur Redhat :
service httpd restart
Mis à jour le 27 janvier 2023
Plus d'informations
Connectez-vous (avec vos identifiants Communauté) pour suggérer une correction ou un complément :