Installation de Juggernaut sur Centos 5.8 : Différence entre versions
De wikiGite
(→Installation de Nodejs) |
|||
(11 révisions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
== Présentation == | == Présentation == | ||
https://github.com/maccman/juggernaut/ | https://github.com/maccman/juggernaut/ | ||
+ | |||
+ | ATTENTION juggernaut est déprecié : http://blog.alexmaccaw.com/killing-a-library | ||
Juggernaut permet de réaliser des connexions en temps réel entre un serveur et un navigateur web. Il permet le push d'informations dans des applications web, cela permet de réaliser des choses comme des jeux multijoueurs, des chats ou des outils collaboratifs. | Juggernaut permet de réaliser des connexions en temps réel entre un serveur et un navigateur web. Il permet le push d'informations dans des applications web, cela permet de réaliser des choses comme des jeux multijoueurs, des chats ou des outils collaboratifs. | ||
− | |||
− | + | Juggernaut est réalisé à l'aide de Node.js. '''DU FAIT QU'IL N'EVOLUE PLUS'', juggernaut ne fonctionne pas avec node.js > 0.8 ! | |
== Préparation du serveur == | == Préparation du serveur == | ||
Ligne 17 : | Ligne 18 : | ||
== Installation de Nodejs == | == Installation de Nodejs == | ||
− | Installation des | + | yum install nodejs --enablerepo=epel |
+ | |||
+ | ''Pour archive : Installation des binaires :'' | ||
yum install openssl-devel | yum install openssl-devel | ||
+ | cd /usr/local/src/ | ||
+ | wget http://nodejs.org/dist/v0.8.9/node-v0.8.9-linux-x64.tar.gz | ||
+ | cd /usr/local && tar --strip-components 1 -xzf src/node-v0.8.9-linux-x64.tar.gz | ||
− | + | ''Pour archive : installation depuis les sources :'' <br/> | |
− | L'installation se fait /usr/local : | + | L'installation se fait dans /usr/local : |
cd /usr/local/src/ | cd /usr/local/src/ | ||
wget http://nodejs.org/dist/latest/node-v0.8.6.tar.gz | wget http://nodejs.org/dist/latest/node-v0.8.6.tar.gz | ||
Ligne 101 : | Ligne 107 : | ||
https://github.com/nodejitsu/forever/ | https://github.com/nodejitsu/forever/ | ||
+ | |||
Forever est un utilitaire en ligne de commande qui permet de faire tourner des scripts Node.js en tant que daemon. Il s'assure également que celui ci ne s'arrête jamais, d'où son nom. | Forever est un utilitaire en ligne de commande qui permet de faire tourner des scripts Node.js en tant que daemon. Il s'assure également que celui ci ne s'arrête jamais, d'où son nom. | ||
Ligne 106 : | Ligne 113 : | ||
npm install forever -g | npm install forever -g | ||
npm install forever-monitor | npm install forever-monitor | ||
+ | En cas d'erreur (ex : "npm ERR! network socket hang up") lancer d'abord : | ||
+ | npm config set registry http://registry.npmjs.org/ | ||
+ | afin d'utiliser http plutôt que https. | ||
== Installation de Juggernaut == | == Installation de Juggernaut == | ||
Ligne 121 : | Ligne 131 : | ||
# chkconfig: - 20 80 | # chkconfig: - 20 80 | ||
# description: Starts and stops the juggernaut daemon. | # description: Starts and stops the juggernaut daemon. | ||
− | + | ||
− | + | PATH=$PATH:/usr/local/bin | |
NAME="Juggernaut" | NAME="Juggernaut" | ||
USER="juggernaut" | USER="juggernaut" | ||
PID="/tmp/juggernaut.pid" | PID="/tmp/juggernaut.pid" | ||
− | |||
LOG_DIR="/var/log/juggernaut" | LOG_DIR="/var/log/juggernaut" | ||
SERVER="/usr/local/lib/node_modules/juggernaut/server.js" | SERVER="/usr/local/lib/node_modules/juggernaut/server.js" | ||
− | + | ||
if [ ! -d "/var/log/juggernaut" ] | if [ ! -d "/var/log/juggernaut" ] | ||
then | then | ||
mkdir /var/log/juggernaut | mkdir /var/log/juggernaut | ||
fi | fi | ||
− | + | ||
start() | start() | ||
{ | { | ||
− | if [ - | + | if [ -e $PID ] |
then | then | ||
echo "Always running" | echo "Always running" | ||
exit | exit | ||
fi | fi | ||
− | forever start -o $LOG_DIR/out.log -e $LOG_DIR/err.log --pidFile $PID $SERVER | + | su -c "cd /tmp; forever start -o $LOG_DIR/out.log -e $LOG_DIR/err.log --pidFile $PID $SERVER" $USER |
} | } | ||
− | + | ||
stop() { | stop() { | ||
− | forever stop $SERVER | + | su -c "forever stop $SERVER" $USER |
+ | if [ -f $PID ] | ||
+ | then | ||
+ | rm $PID | ||
+ | fi | ||
} | } | ||
− | + | ||
reload() { | reload() { | ||
false | false | ||
} | } | ||
− | + | ||
− | + | ||
case "$1" in | case "$1" in | ||
start) | start) | ||
Ligne 162 : | Ligne 175 : | ||
;; | ;; | ||
status) | status) | ||
− | forever list | + | su -c "forever list" $USER |
;; | ;; | ||
restart) | restart) | ||
Ligne 175 : | Ligne 188 : | ||
</source> | </source> | ||
− | + | adduser --system juggernaut | |
+ | mkdir -p /home/juggernaut/.forever | ||
+ | mkdir /var/log/juggernaut/ | ||
+ | chown -R juggernaut /home/juggernaut | ||
+ | chown juggernaut /var/log/juggernaut/ | ||
chmod +x /etc/init.d/juggernaut | chmod +x /etc/init.d/juggernaut | ||
chkconfig juggernaut on | chkconfig juggernaut on | ||
+ | service juggernaut restart | ||
Tester le fonctionnement de Juggernaut : <br/> | Tester le fonctionnement de Juggernaut : <br/> | ||
http://localhost:8080 | http://localhost:8080 | ||
+ | |||
+ | NOTE: Attention par défaut Tomcat utilise le même port. Si Tomcat est installé, assurez-vous qu'il est arrêté ou tourne sur un autre port ! | ||
== Monit == | == Monit == |
Version actuelle datée du 25 février 2015 à 09:14
Sommaire
Présentation
https://github.com/maccman/juggernaut/
ATTENTION juggernaut est déprecié : http://blog.alexmaccaw.com/killing-a-library
Juggernaut permet de réaliser des connexions en temps réel entre un serveur et un navigateur web. Il permet le push d'informations dans des applications web, cela permet de réaliser des choses comme des jeux multijoueurs, des chats ou des outils collaboratifs.
Juggernaut est réalisé à l'aide de Node.js. 'DU FAIT QU'IL N'EVOLUE PLUS, juggernaut ne fonctionne pas avec node.js > 0.8 !
Préparation du serveur
Paquets requis
yum groupinstall "Development tools" yum install git yum install php php-devel
Ajouter depot
Installation de Nodejs
yum install nodejs --enablerepo=epel
Pour archive : Installation des binaires :
yum install openssl-devel cd /usr/local/src/ wget http://nodejs.org/dist/v0.8.9/node-v0.8.9-linux-x64.tar.gz cd /usr/local && tar --strip-components 1 -xzf src/node-v0.8.9-linux-x64.tar.gz
Pour archive : installation depuis les sources :
L'installation se fait dans /usr/local :
cd /usr/local/src/ wget http://nodejs.org/dist/latest/node-v0.8.6.tar.gz tar xzf node-v0.8.6.tar.gz && cd node-v0.8.6/ ./configure --openssl-libpath=/usr/lib/ssl make -j2 make install
Installation de Redis
yum install --enablerepo=epel redis mv /etc/redis.conf /etc/redis.conf.bk vim /etc/redis.conf
Le fichier de configuration doit comporter ces options :
daemonize yes pidfile /var/run/redis/redis.pid port 6379 bind 127.0.0.1 timeout 300 loglevel verbose logfile /var/log/redis/redis-server.log databases 16 save 900 1 save 300 10 save 60 10000 rdbcompression yes dbfilename dump.rdb dir /var/lib/redis appendonly no appendfsync everysec vm-enabled no vm-swap-file /var/lib/redis/redis.swap vm-max-memory 0 vm-page-size 32 vm-pages 134217728 vm-max-threads 4 glueoutputbuf yes hash-max-zipmap-entries 64 hash-max-zipmap-value 512
Vous pouvez télécharger la version complète ( attention au chemin du pid ): wget https://raw.github.com/gist/1164482/77e4ecf14ffac42b0e987e7ffe16cb757d734ff9/redis.conf
chkconfig --level 2345 redis on
Démarrage du service redis server :
/etc/init.d/redis start
Installation de Node_redis
npm install -g redis
Installation de Phpredis
git clone https://github.com/nicolasff/phpredis.git cd phpredis phpize ./configure make make install
Activation de l'extension PHP : Créer un fichier redis.ini dans /etc/php.d avec le contenu suivant :
extension=redis.so
Installer Forever
https://github.com/nodejitsu/forever/
Forever est un utilitaire en ligne de commande qui permet de faire tourner des scripts Node.js en tant que daemon. Il s'assure également que celui ci ne s'arrête jamais, d'où son nom.
Installation
npm install forever -g npm install forever-monitor
En cas d'erreur (ex : "npm ERR! network socket hang up") lancer d'abord :
npm config set registry http://registry.npmjs.org/
afin d'utiliser http plutôt que https.
Installation de Juggernaut
npm install -g juggernaut
vim /etc/init.d/juggernaut
Copier le contenu suivant :
#!/bin/bash
#
# juggernaut init file for starting up the juggernaut daemon
#
# chkconfig: - 20 80
# description: Starts and stops the juggernaut daemon.
PATH=$PATH:/usr/local/bin
NAME="Juggernaut"
USER="juggernaut"
PID="/tmp/juggernaut.pid"
LOG_DIR="/var/log/juggernaut"
SERVER="/usr/local/lib/node_modules/juggernaut/server.js"
if [ ! -d "/var/log/juggernaut" ]
then
mkdir /var/log/juggernaut
fi
start()
{
if [ -e $PID ]
then
echo "Always running"
exit
fi
su -c "cd /tmp; forever start -o $LOG_DIR/out.log -e $LOG_DIR/err.log --pidFile $PID $SERVER" $USER
}
stop() {
su -c "forever stop $SERVER" $USER
if [ -f $PID ]
then
rm $PID
fi
}
reload() {
false
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
su -c "forever list" $USER
;;
restart)
stop
start
;;
*)
echo $"Usage: $0 {start|stop|restart|status}"
exit 2
esac
exit $?
adduser --system juggernaut mkdir -p /home/juggernaut/.forever mkdir /var/log/juggernaut/ chown -R juggernaut /home/juggernaut chown juggernaut /var/log/juggernaut/ chmod +x /etc/init.d/juggernaut chkconfig juggernaut on service juggernaut restart
Tester le fonctionnement de Juggernaut :
http://localhost:8080
NOTE: Attention par défaut Tomcat utilise le même port. Si Tomcat est installé, assurez-vous qu'il est arrêté ou tourne sur un autre port !
Monit
Envoyer un mail par monit en cas de coupure du daemon :
check host juggernaut with address 127.0.0.1 if failed port 8080 protocol HTTP request /application.js with timeout 10 seconds then alert