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 mod_jk ou mod_proxy
Etape | mod_jk | mod_proxy |
---|---|---|
Installation |
|
Les modules mod_proxy sont installés en standard avec apache/httpd. |
Activation |
|
|
Configuration | Le fichier à éditer se nomme workers.properties et se trouve dans le dossier /etc/libapache2-mod-jk/ sur Debian, ou dans /etc/httpd/conf/ sur Redhat. Si le fichier n'existe pas, vous devrez le créer. S'il existe déjà, vous pouvez remplacer son contenu. Pour renseigner le fichier, vous devez connaître l'adresse IP du serveur sur lequel se trouve Tomcat si celui-ci n'est pas installé sur le même serveur, et le port d'écoute du serveur Tomcat. Note importante GhostCat Depuis tomcat 8.5.51, un nouvel attribut a été ajouté afin de sécuriser les échanges entre le apache http et le tomcat. Ce nouveau paramètre est disponible à partir de mod_jk 2.1.12 Cette nouvelle directive nommée secret doit être ajoutée dans le fichier workers.properties sous la forme habituelle worker.[[nom du worker]].[[directive]]=valeur Pour la valeur du secret, choisissez une chaîne de caractère alphanumérique du 20aine de caractères. Cette chaîne est à reporter dans la configuration tomcat au niveau du connecteur AJP Renseignez ensuite les valeurs dans le fichier :
Dans le fichier de configuration du virtualhost, ajouter les lignes suivantes :L'exemple ci-dessous présente une configuration minimale qui devra être adaptées aux spécificités du projet si besoin.
avec
|
Dans la configuration du Virtualhost, ajouter
|
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 15 février 2021
Plus d'informations
Cet article n'est pas à jour ?
Connectez-vous (avec vos identifiants Communauté) pour suggérer une correction ou un complément :