IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

NodeJS Discussion :

Site Node.js en production sur serveur dédié ?


Sujet :

NodeJS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    495
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 495
    Par défaut Site Node.js en production sur serveur dédié ?
    Bonjour,

    J'ai actuellement un serveur dédié sur lequel j’héberge mes projets.. Mais qui sont tous en PHP actuellement.

    J'ai commencé a travailler un peu sur node.js, express, socket.. La base du javascript serveur, en gros.

    J'ai réussi a le faire tourner sur mon serveur, sur le port 8080.. Pour tester c'est suffisant, mais je me pose la question de la mise en production.

    Le port 80 est réservé à Apache, il y a deja pas mal de sites qui tournent dessus et je ne peux rien changer de ce coté la.

    Du coup, je me demande bien comment faire pour utiliser node.js sur un serveur de ce genre, sans casser toute la config a coté.. Et aussi comment faire si on veut pouvoir monter plusieurs sites utilisant node.js, en parallèle, sur un serveur, comme on peut le faire avec apache.. Parce que meme si j'ai un nom de domaine pour chaque site, les ports sont communs ? En plus il faut que je me souvienne quels ports j'ai deja utilisé selon chaque site ? Pas pratique du tout, si c'est cela..

    D'autre part.. Node.js n'etant toujours pas en version 1.. Pensez vous que cet outil soit suffisamment mature pour un site en production ? (je pense a toutes les galeres potentielles de mise a jour a chaque changement de version de node.. et de ses modules.. les fonctions sont vite modifiées / dépréciées..)

    Merci d'avance pour vos avis sur ces deux points !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Et bien il faut faire du reverse proxy.
    Tu peux dire à apache de rediriger sur un serveur node. Par contre, ça va baisser tes perfs (passage par un proxy oblige).
    Exemple

    Pour la deuxième question, tu peux voire dans la doc nodejs la stabilité de chaque API :
    Stability: 0 - Deprecated
    This feature is known to be problematic, and changes are
    planned. Do not rely on it. Use of the feature may cause warnings. Backwards
    compatibility should not be expected.

    Stability: 1 - Experimental
    This feature was introduced recently, and may change
    or be removed in future versions. Please try it out and provide feedback.
    If it addresses a use-case that is important to you, tell the node core team.

    Stability: 2 - Unstable
    The API is in the process of settling, but has not yet had
    sufficient real-world testing to be considered stable. Backwards-compatibility
    will be maintained if reasonable.

    Stability: 3 - Stable
    The API has proven satisfactory, but cleanup in the underlying
    code may cause minor changes. Backwards-compatibility is guaranteed.

    Stability: 4 - API Frozen
    This API has been tested extensively in production and is
    unlikely to ever have to change.

    Stability: 5 - Locked
    Unless serious bugs are found, this code will not ever
    change. Please do not suggest changes in this area; they will be refused.
    Source
    Donc si tu n'utilises que des modules de stabilité 3, je pense que c'est viable en production, tu n'auras pas de soucis de compatibilité lors d'updates. par contre, avec du 1 ou du 2, la donne n'est pas la même.
    Après c'est à toi de faire ton choix.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    495
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 495
    Par défaut
    Merci ca fonctionne.. ! A vrai dire, si l'afflux est tel que le site a besoin de plus de performances, ca vaudra le coup de prendre un serveur dédié à Node.js.. Pour le moment, je n'ai pas le budget pour cela !

    Merci aussi pour l'astuce du niveau de stabilité, je n'avais pas vu cela.


    Bon, par contre, maintenant j'ai une erreur de chargement js.. dans mon index.html, j'ai inclus socket.io :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script src="/node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.min.js"></script>
    et j'ai du rajouter ca dans mon app.js pour que le fichier soit trouvé..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    app.get('/node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.js', function (req, res) {
      res.sendfile(__dirname + '/node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.js');
    });
    ca me parait un peu étrange comme comportement, du coup.. et je ne vais certainement pas faire ca pour toute les images, js, css..

  4. #4
    Invité
    Invité(e)
    Par défaut
    Ça me parait effectivement bizarre. J'avais fait des tests avec express et socket.io et n'avais pas eu besoin de faire ça.

    Regarde du côté des HowTo de socket.io. Il y un exemple d'utilisation avec express :

    Server :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    var app = require('express')()
      , server = require('http').createServer(app)
      , io = require('socket.io').listen(server);
     
    server.listen(80);
     
    app.get('/', function (req, res) {
      res.sendfile(__dirname + '/index.html');
    });
     
    io.sockets.on('connection', function (socket) {
      socket.emit('news', { hello: 'world' });
      socket.on('my other event', function (data) {
        console.log(data);
      });
    });
    Client :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <script src="/socket.io/socket.io.js"></script>
    <script>
      var socket = io.connect('http://localhost');
      socket.on('news', function (data) {
        console.log(data);
        socket.emit('my other event', { my: 'data' });
      });
    </script>

Discussions similaires

  1. Réponses: 0
    Dernier message: 23/03/2010, 04h55
  2. Upgrade php5 sur serveur dédié de production
    Par xb173 dans le forum Apache
    Réponses: 2
    Dernier message: 21/08/2007, 14h23
  3. Ftp sur serveur dédié
    Par poumpoum dans le forum Serveurs (Apache, IIS,...)
    Réponses: 6
    Dernier message: 29/05/2006, 10h10
  4. [Mail] Serveur de mail en PHP sur serveur dédié
    Par dralik dans le forum Langage
    Réponses: 15
    Dernier message: 16/01/2006, 15h11
  5. Réponses: 2
    Dernier message: 05/01/2006, 10h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo