Construction du Projet
Pour compiler et empaqueter l'application, exécutez la commande Maven suivante :
mvn clean install
Configuration du Serveur Nginx
Installation
Pour installer Nginx, référez-vous à des ressources extérieures telles que les tutoriels disponibles en ligne.
Fichier de Configuration Principle (nginx.conf)
Le fichier se trouve généralement dans le répertoire nginx/conf. Voici les blocs de configuration essentiels :
Configuration de l'API Backend
server {
server_name api.monsite.com;
listen 80;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_read_timeout 21600s;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://127.0.0.1:7086; # Doit correspondre au port du backend
}
}
Configuration de l'Application Web Frontend
server {
listen 80;
server_name frontend.monsite.com;
root /data/projets/web-front/dist; # Chemin vers le dossier build du frontend
index index.html;
try_files $uri $uri/ /index.html;
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|js|pdf|txt)$ {
root /data/projets/web-front/dist;
error_page 404 http://frontend.monsite.com/index.html;
}
}
Configuration d'Accès aux Fichiers Statiques Locaux
server {
listen 6088;
server_name 192.168.1.100;
root /data/static; # Répertoire contenant les fichiers statiques
index index.html;
try_files $uri $uri/ /index.html;
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|js|pdf|txt)$ {
root /data/static;
error_page 404 http://192.168.1.100:6088/index.html;
}
}
Méthodes d'Ajout des Configurations
Vous avez deux options pour intégrer ces blocs :
- Les insérer directement dans la section
http { }du fichiernginx.conf. - Créer des fichiers séparés pour chaque bloc (ex:
/data/nginx/vhost/api.conf) et inclure le dossier dansnginx.conf:
# Dans la section http { } du fichier nginx.conf, ajoutez à la fin :
include /data/nginx/vhost/*.conf;
Validation et Rechargement de la Configuration
Après toute modification, vérifiez la syntaxe et rechargez Nginx :
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -s reload
Démarrage de l'Application Backend
Transférez le fichier JAR généré sur le serveur. Utilisez la commande suivante (ou créez un script start.sh) :
cd /data/projets/back/api
nohup /data/java/jdk-11/bin/java -Xms400m -Xmx400m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:MaxNewSize=512m -jar mon-app-api-1.0.0.jar >/data/logs/app-back.log 2>&1 &
Arrêt de l'Application
Avant de redéployer une nouvelle version, il est nécessaire d'arrêter l'ancien processus.
# Lister les ports en écoute
netstat -tlnp
# Arrêter le processus avec l'identifiant PID correspondant
kill -9 PID
Redémarrage Automatisé
Voici un script Bash complet (ex: restart.sh) pour arrêter et redémarrer l'application :
#!/bin/bash
echo "=== Arrêt du processus en cours ==="
NOM_JAR='mon-app-api-1.0.0.jar'
PIDS=`ps -ef | grep "$NOM_JAR" | grep "java" | awk '{print $2}'`
if [ -z "$PIDS" ]; then
echo "Aucun processus trouvé pour $NOM_JAR."
else
echo "Arrêt du processus PID: $PIDS ..."
for PID in $PIDS ; do
kill -9 $PID >/dev/null 2>&1
done
echo "Processus arrêté."
fi
echo "=== Démarrage de l'application ==="
cd /data/projets/back/api
nohup /data/java/jdk-11/bin/java -Xms1024m -Xmx4096m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:MaxNewSize=4096m -jar $NOM_JAR >/data/logs/app-back.log 2>&1 &
echo "Application démarrée."
Consultation des Journaux
Pour suivre les logs en temps réel, utilisez la commande tail :
#!/bin/bash
echo "=== Suivi du fichier de log ==="
tail -f /data/projets/back/api/logs/application.log