-
Notifications
You must be signed in to change notification settings - Fork 2
Guide de déploiement
Nous avons à disposition un serveur web dans un container accessible en SSH sur lequel la version 10.11.0 de Node.js, composer, git ainsi que la version 6.4.1 de npm sont installées.
Note : en cas de crash du container, tous les package Node.js sont désinstallés. Il est donc nécessaire de les réinstaller et de relancer les services de pm2.
-- Connexion en ssh. --
cd ~/www/Complex-DLMA/
git fetch --all
git status
-- Gestion des conflits. --
git pull origin master
composer install --optimize-autoloader --no-dev
composer update --prefer-dist -vvv --profile
php artisan config:cache
composer dump-auto
À ne faire qu'en cas de volonté de reset les données de la bdd :
php artisan migrate:refresh
Si websocket n'est pas déjà installé (pour tester : npm list websocket
) :
npm install websocket
Si uuid n'est pas déjà installé (pour tester : npm list uuid
) :
npm install uuid
Si pm2 n'est pas déjà installé (pour tester : npm list pm2
) :
npm install pm2 -g
Dans le cas où le serveur a déjà été démarré (pour tester : pm2 list
) :
pm2 stop nodeServer
pm2 delete nodeServer
Démarrage du service et configuration de pm2 (en cas de redémarrage du serveur) :
pm2 start nodeServer.js
pm2 startup
-- Taper la commande affichée dans l'output de la commande précédente. --
Nous avons rencontré un problème lors du premier déploiement de notre application Node.js sur l'infrastructure fournie par la HE-Arc qui nous empêchait d'établir un websocket entre le serveur Node et un client.
Il s'est avéré que le problème provenait du fait que le client essayait de communiquer sur un port inaccessible depuis l'extérieur du serveur web. Les seuls ports disponibles étaient le 443 (https) et le 80 (http).
Nous avons donc modifié les fichiers de configuration du serveur de telle manière qu'il redirige les requêtes du client Node sur un port interne spécifique sur lequel écoute le serveur Node.js.
Nous avons ainsi modifié le fichier ~/www/config/nginx.conf
pour y ajouter la route suivante :
location ~ ^/socket\.io {
proxy_pass http://localhost:1337;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
}
Selon la configuration ci-dessus, le client Node.js doit donc communiquer à l'adresse
"wss://complexdlma.srvz-webapp.he-arc.ch:443/socket.io"
et le serveur doit écouter à l'adresse 127.0.0.1:1337
.
Problème résolu grâce à J.Crescoli.