Installation de Juggernaut sur Centos 5.8 : Différence entre versions
De wikiGite
(Page créée avec « == Présentation == https://github.com/maccman/juggernaut/ Juggernaut permet de raliser des connexions en temps réel entre un serveur et un navigateur web. Il permet le pus... ») |
|||
Ligne 101 : | Ligne 101 : | ||
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 | + | 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 | ||
+ | |||
+ | == Installation de Juggernaut == | ||
+ | |||
+ | npm install -g juggernaut | ||
+ | |||
+ | vim /etc/init.d/juggernaut | ||
+ | |||
+ | Copier le contenu suivant : | ||
+ | <source lang=bash> | ||
+ | #!/bin/bash | ||
+ | # | ||
+ | # juggernaut init file for starting up the juggernaut daemon | ||
+ | # | ||
+ | # chkconfig: - 20 80 | ||
+ | # description: Starts and stops the juggernaut daemon. | ||
+ | |||
+ | |||
+ | NAME="Juggernaut" | ||
+ | USER="juggernaut" | ||
+ | PID="/tmp/juggernaut.pid" | ||
+ | NBR_PID=`cat $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 [ -d /proc/$NBR_PID ] | ||
+ | then | ||
+ | echo "Always running" | ||
+ | exit | ||
+ | fi | ||
+ | forever start -o $LOG_DIR/out.log -e $LOG_DIR/err.log --pidFile $PID $SERVER | ||
+ | } | ||
+ | |||
+ | stop() { | ||
+ | forever stop $SERVER | ||
+ | } | ||
+ | |||
+ | reload() { | ||
+ | false | ||
+ | } | ||
+ | |||
+ | |||
+ | case "$1" in | ||
+ | start) | ||
+ | start | ||
+ | ;; | ||
+ | stop) | ||
+ | stop | ||
+ | ;; | ||
+ | status) | ||
+ | forever list | ||
+ | ;; | ||
+ | restart) | ||
+ | stop | ||
+ | start | ||
+ | ;; | ||
+ | *) | ||
+ | echo $"Usage: $0 {start|stop|restart|status}" | ||
+ | exit 2 | ||
+ | esac | ||
+ | exit $? | ||
+ | </source> | ||
+ | |||
+ | |||
+ | chmod +x /etc/init.d/juggernaut | ||
+ | chkconfig juggernaut on | ||
+ | |||
+ | Tester le fonctionnement de Juggernaut : <br/> | ||
+ | http://localhost:8080 | ||
+ | |||
+ | == 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 |
Version du 10 août 2012 à 08:46
Sommaire
Présentation
https://github.com/maccman/juggernaut/
Juggernaut permet de raliser 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 realiser des choses comme des jeux multijoueurs, des chats ou des outils collaboratifs. Juggernaut est realisé à l'aide de Node.js.
ATTENTION juggernaut est déprecié : http://blog.alexmaccaw.com/killing-a-library
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 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
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.
NAME="Juggernaut"
USER="juggernaut"
PID="/tmp/juggernaut.pid"
NBR_PID=`cat $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 [ -d /proc/$NBR_PID ]
then
echo "Always running"
exit
fi
forever start -o $LOG_DIR/out.log -e $LOG_DIR/err.log --pidFile $PID $SERVER
}
stop() {
forever stop $SERVER
}
reload() {
false
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
forever list
;;
restart)
stop
start
;;
*)
echo $"Usage: $0 {start|stop|restart|status}"
exit 2
esac
exit $?
chmod +x /etc/init.d/juggernaut chkconfig juggernaut on
Tester le fonctionnement de Juggernaut :
http://localhost:8080
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