Autres versions

Vous êtes ici : Installation 7.0Pré-requisServeur 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)
Si java n'est pas installé sur la machine, il est possible de le faire à partir des packages officiels de l'OS Debian 12 :
sudo apt install default-jdk -y

Configuration du serveur

Configuration de la locale

Nos logiciels fonctionnent avec l'encodage UTF-8. Si le serveur n'est pas configuré en UTF-8, il faudra veiller à éditer les fichiers K-Sup avec un éditeur configuré en UTF-8 (pour l'enregistrement).
Pour connaître l'encodage du serveur, il faut effectuer la commande suivante :
locale

SELinux

Il est possible d'activer le module SELinux sur votre plateforme. Dans ce cas, certaines configurations devront être réalisées lors de votre installation pour activer les bonnes règles de sécurité pour chacun des composants installés. Ces règles sont précisées dans les différentes étapes de votre installation.

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}

Configuration du contrôle des ressources

Le fonctionnement du logiciel nécessite l'utilisation de ressources, notamment des fichiers. La limite du nombre de fichiers ouverts par l'utilisateur tomcat doit être augmentée.
Si possible, passer la limite à "unlimited", sinon passer la limite à 1048576.
sudo vi /etc/default/tomcat9
 
# Puis inscrire les lignes suivantes dans le fichier :
ulimit -Hn 1048576
ulimit -Sn 1048576

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'
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=65536
 
[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)
Le lancement du serveur Tomcat s'effectue alors avec la commande
/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.xml

Par 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

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 :
<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 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 java

Afin de vérifier l'installation de java, vous pouvez exécuter la commande suivante :
java --version
Celle ci doit retourner une sortie de la forme suivante :
openjdk 17.0.9 2023-10-17
OpenJDK Runtime Environment (build 17.0.9+9-Debian-1deb12u1)
OpenJDK 64-Bit Server VM (build 17.0.9+9-Debian-1deb12u1, mixed mode, sharing)
Où le numéro de version doit être de la forme 17.0.x (suivant la version mineure installée).

Vérification de la locale du serveur

Afin de vérifier la locale de l'environnement, vous pouvez exécuter la commande suivante :

localectl status

Celle-ci doit retourner une sortie de la forme suivante

 System Locale: LANG=fr_FR.UTF-8
    VC Keymap: fr-oss
   X11 Layout: fr
  X11 Variant: oss

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%
  • %IP_BDD% est l'adresse IP du serveur de base de données
  • %PORT_BDD% est le port de la base de données
Cette commande doit retourner un message de la forme
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%
  • %IP_OPENSEARCH% est l'adresse IP du serveur de recherche
  • %PORT_OPENSEARCH% est le port du serveur de recherche

Mis à jour le 29 mai 2024