Autres versions
Vous êtes ici : Installation 7.0 → Pré-requis → Serveur Applicatif
Serveur applicatif
Procédure d'installation du serveur utilisé pour déployer l'application K-Sup.
Cette page décrit l'installation et la configuration du serveur sur lequel sera déployé l'application K-Sup. Les serveurs Apache et Tomcat seront installés sur cette machine.
Usage
Le serveur applicatif va permettre de déployer l'application K-Sup. Il est composé des serveurs Apache et Tomcat.Par défaut, l'application sera installée dans un répertoire /web/ksup/webapp. Ce chemin peut-être adapté si besoin.
Liens avec les autres serveurs
Type de Lien | Serveur | Port | Remarques |
---|---|---|---|
Sortant | Serveur de base de données | 3306 | |
Sortant | Serveur NFS | 2049 | |
Sortant | Serveur CAS | 443 | |
Sortant | Serveur LDAP | 636 | |
Entrant | Frontal Web | 80 |
Pré-requis
- OS : Debian 12
- Java : Open JDK 17
- Serveur NFS (si nécessaire)
Installation de Tomcat
La procédure ci-dessous décrit une installation manuelle du serveur Tomcat. Vous pouvez modifier les répertoires d'installation si besoin. Il faudra dans ce cas reporter ces chemins dans les étapes suivantes d'installation (voir ci-après) :
#Créer un groupe tomcat
groupadd tomcat
#Créer un user tomcat
useradd -g tomcat -d /opt/tomcat -s /usr/sbin/nologin tomcat
#Télécharger la dernière version de tomcat 9
cd /tmp
export CURRENT_VERSION="$(wget -qO- https://downloads.apache.org/tomcat/tomcat-9/ | grep -o "href=\"v9\.[^/]*/" | grep -oP "9.[^/]*" | tail -1)"
wget https://downloads.apache.org/tomcat/tomcat-9/v${CURRENT_VERSION}/bin/apache-tomcat-${CURRENT_VERSION}.tar.gz
#Télécharger le md5 correspondant
wget --no-check-certificate https://downloads.apache.org/tomcat/tomcat-9/v${CURRENT_VERSION}/bin/apache-tomcat-${CURRENT_VERSION}.tar.gz.sha512
#Calculer le sha512sum du targz téléchargé
sha512sum apache-tomcat-${CURRENT_VERSION}.tar.gz
#Le comparer à celui attendu:
cat apache-tomcat-${CURRENT_VERSION}.tar.gz.sha512
#Installer le targz
tar -zxvf apache-tomcat-${CURRENT_VERSION}.tar.gz
mkdir /opt/tomcat/
mv apache-tomcat-${CURRENT_VERSION}/* /opt/tomcat/
#Déplacer le répertoire des logs dans /var/log
mkdir /var/log/tomcat
rmdir /opt/tomcat/logs
ln -s /var/log/tomcat /opt/tomcat/logs
#Positionner les droits
chown -R tomcat:tomcat /var/log/tomcat/
chown -R tomcat:tomcat /opt/tomcat/
#Nettoyer les fichiers temporaires et la variable d'env
rm -Rf /tmp/apache-tomcat-${CURRENT_VERSION}
unset ${CURRENT_VERSION}
Création du script de lancement
Dans le répertoire, /etc/systemd/system, créer un fichier tomcat.service avec le contenu suivant :
[Unit]
Description=Apache Tomcat 9 Web Application Container
Wants=network.target
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=%JDK_PATH%
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment='CATALINA_OPTS=-Djava.net.preferIPv4Stack=true'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Xms%XMS% -Xmx%XMX% -XX:+UseG1GC -Dconf.dir=%CONF_DIR_PATH% -Dfile.encoding=UTF8 -Xlog:gc*:file=%STORAGE_DIR_PATH%/logs/$(hostname)-gc-$(date +%s).log:tags,time,level '
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
SuccessExitStatus=143
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
LimitNOFILE=1048576
[Install]
WantedBy=multi-user.target
où :
- %JDK_PATH% est le chemin vers le répertoire d'installation du JDK (exemple /usr/lib/jvm/java-1.17.0-openjdk-amd64)
- %XMS% est la valeur du paramètre Xms pour le processus (conseillé 4Go)
- %XMX% est la valeur du paramètre Xmx pour le processus (conseillé 4Go)
- %CONF_DIR_PATH% est le chemin vers le répertoire de configuration de l'application K-Sup (conseillé : /web/ksup/storage/conf)
- %STORAGE_DIR_PATH est le chemin vers le répertoire du storage K-Sup (conseillé : /web/ksup/storage)
/etc/init.d/tomcat stop|start|restart|status|kill
Suppression des répertoires par défaut de Tomcat
Par défaut, Tomcat installe des répertoires qui ne seront pas utilisés par la suite. Il faut donc les supprimer
sudo rm -rf /opt/tomcat/host-manager/
sudo rm -rf /opt/tomcat/manager/
sudo rm -rf /opt/tomcat/examples/
sudo rm -rf /opt/tomcat/docs/
sudo rm -rf /opt/tomcat/ROOT/*
Déclaration de l'application
Le fichier à éditer est /opt/tomcat/conf/server.xmlPar défaut, le connecteur HTTP est activé et écoute sur le port 8080.
<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener"/>
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on"/>
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="60000" maxThreads="150" URIEncoding="UTF-8" redirectPort="8443"/>
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" autoDeploy="false" unpackWARs="false" deployOnStartup="false">
<Context docBase="%WEBAPP_PATH%" path="" crossContext="true" allowLinking="false"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t '%r' %s %D %b"/>
</Host>
</Engine>
</Service>
</Server>
où :
- %WEBAPP_PATH% est le chemin vers la webapp (conseillé /web/ksup/webapp)
Installation d'Apache avec support du HTTP/2
À partir des version 2.4.17+, apache supporte le protocole HTTP/2.Le protocole HTTP/2 est un protocole exclusivement SSL dans son implémentation dans les navigateurs.
Cela implique que le serveur doit impérativement avoir un certificat valide et supporter le ALPN (Application-Layer Protocol Negotiation).
Le serveur Apache sera installé à partir des packages officiels de l'OS Debian 12 :
sudo apt install apache2 -y
Configuration du serveur Apache
La déclaration d'un site nécessite l'ajout du fichier Virtualhost dans la configuration Apache. Il faut créer un fichier ksup.conf dans le répertoire /etc/apache2/site-available/ et y copier la configuration suivante :
Protocols h2 http/1.1
<VirtualHost *:443>
ServerName %HOST%
ServerAlias %ALIAS%
ServerAdmin %MAIL@ADMIN%
DocumentRoot %WEBAPP_PATH%
ErrorLog /var/log/apache2/ksup-error.log
CustomLog /var/log/apache2/ksup-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_PATH%">
Options None
AllowOverride None
DirectoryIndex index.jsp
Require all granted
</Directory>
ProxyPreserveHost on
ProxyPass "/" "http://localhost:8080/"
ProxyPassReverse "/" "http://localhost:8080/"
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Port "443"
SSLEngine on
SSLCertificateFile %CERTIFICATE_PATH%.crt
SSLCertificateKeyFile %CERTIFICATE_PATH%.key
</VirtualHost>
où :
- %HOST% est le nom de domaine principal auquel le serveur doit répondre en HTTPS
- %ALIAS% est le nom de domaine ou l'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_PATH% est le chemin vers la webapp (conseillé /web/ksup/webapp).
- %CERTIFICATE_PATH% est le chemin vers les fichiers de certificats.
Activation du site
Pour activer le site, il faut recharger les différents modules via les commandes suivantes
sudo a2enmod headers
sudo a2enmod ssl
sudo a2enmod http2
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2ensite ksup.conf
sudo systemctl reload apache2
sudo systemctl restart apache2
Configuration en mode cluster
L'application peut être configurée pour fonctionner en mode cluster.
Merci de vous référer à la documentation détaillant la configuration de ce mode : Mise en place du mode cluster.
Vérification de l'installation
Vérification de l'installation de Tomcat
Pour vérifier l'installation de Tomcat, vous pouvez exécuter la commande suivante :
java -cp /usr/share/tomcat/lib/catalina.jar org.apache.catalina.util.ServerInfo
Celle-ci doit retourner une sortie de la forme suivante :
Server version: Apache Tomcat/9.0.62
Server built: Jan 12 1970 17:35:50 UTC
Server number: 9.0.62.0
OS Name: Linux
OS Version: 5.14.0-362.18.1.el9_3.x86_64
Architecture: amd64
JVM Version: 17.0.10+7-LTS
JVM Vendor: Red Hat, Inc.
Où le numéro de version doit être de la forme 9.0.x (suivant la version mineure installée).
Vérification de la connexion avec la base de données
Afin de vérifier si le serveur a bien accès au serveur de base données (si celui-ci est installé sur un autre serveur), il faut effectuer la commande suivante :
nc -z -v %IP_BDD% %PORT%
où
- %IP_BDD% est l'adresse IP du serveur de base de données
- %PORT_BDD% est le port de la base de données
Connection to 10.43.34.244 3306 port [tcp/*] succeeded!
Vérification de la connexion au serveur de recherche Opensearch
Afin de vérifier si le serveur a bien accès au serveur de recherche Opensearch (si celui-ci est installé sur un autre serveur), il faut effectuer la commande suivante :
nc -z -v %IP_OPENSEARCH% %PORT_OPENSEARCH%
où
- %IP_OPENSEARCH% est l'adresse IP du serveur de recherche
- %PORT_OPENSEARCH% est le port du serveur de recherche
Mis à jour le 24 octobre 2024