Installation de Juggernaut sur Centos 5.8
De wikiGite
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
Installation des pré-requis :
yum install openssl-devel
Installation des binaires :
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 /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 "forever start -o $LOG_DIR/out.log -e $LOG_DIR/err.log --pidFile $PID $SERVER" $USER
}
stop() {
su -c "forever stop $SERVER" $USER
rm $PID
}
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