Outils personnels

Installation de Juggernaut sur Centos 5.8 : Différence entre versions

De wikiGite

(Installation de Juggernaut)
(Installation de Juggernaut)
Ligne 122 : Ligne 122 :
 
# 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
 
PATH=$PATH:/usr/local/bin
 
NAME="Juggernaut"
 
NAME="Juggernaut"
 
USER="juggernaut"
 
USER="juggernaut"
 
PID="/tmp/juggernaut.pid"
 
PID="/tmp/juggernaut.pid"
NBR_PID=`cat $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 [ -d /proc/$NBR_PID ]
+
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 "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
 +
rm $PID
 
}
 
}
 
+
 
reload() {
 
reload() {
 
     false
 
     false
 
}
 
}
 
+
 
+
 
case "$1" in
 
case "$1" in
 
     start)
 
     start)
Ligne 163 : Ligne 163 :
 
;;
 
;;
 
     status)
 
     status)
forever list
+
su -c "forever list" $USER
 
;;
 
;;
 
     restart)
 
     restart)

Version du 14 août 2012 à 00:22

Présentation

https://github.com/maccman/juggernaut/

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.

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

Dépôts_complémentaires#EPEL

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.
 
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 $?


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