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>
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
#Contrôle d'acces : depend de la version d'Apache (cf ci-dessous)
Order allow,deny
Allow from all
</directory>
<locationmatch "/(WEB-INF|META-INF|storage)/">
#Contrôle d'acces : depend de la version d'Apache (cf ci-dessous)
order allow,deny
deny from all
satisfy all
</locationmatch>
</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. 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/"
Important Le cache devra être nettoyé à chaque livraison par la commande :
htcacheclean -t -p/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 9 avril 2019
Plus d'informations
Connectez-vous (avec vos identifiants Communauté) pour suggérer une correction ou un complément :