L'exécution et la gestion de nodejs applications sur un seul serveur
Est-il une bonne façon d'exécuter et de gérer plusieurs nodejs applications sur un seul serveur?
J'ai été à la recherche à haibu et nodester, mais ils semblent un peu complexe pour ce que je suis en train de faire.
J'ai aussi été à la recherche à pour toujours et je pense que cela peut fonctionner avec le fichier de configuration et l'interface web, mais je ne suis pas sûr de savoir comment je vais gérer en passant le port d'informations via ENV ou des arguments.
Je ne suis pas entièrement sûr de ce que la portée de vos projets, mais serait-il une option à utiliser pour l'application de configuration de site fichiers? Vous pouvez spécifier les ports pour chaque application dans un "siteConfig.js" fichier et l'importer dans votre serveur de fichier, ce qui est une façon d'organiser les choses (voir la section github.com/mape/node-express-boilerplate). Que peut gérer le port de la partie, mais ne vous donnent pas nécessairement une solution de gestion pour toutes les applications.
Laissez-moi vous expliquer mon flux de travail. Sur notre serveur, nous exécuter Apache et je vais mettre en place un reverse proxy pour chaque nœud de l'application que nous développons. Pour l'instant ce sont de faible trafic des applications je tiens donc à les exécuter sur le même serveur.
Laissez-moi vous expliquer mon flux de travail. Sur notre serveur, nous exécuter Apache et je vais mettre en place un reverse proxy pour chaque nœud de l'application que nous développons. Pour l'instant ce sont de faible trafic des applications je tiens donc à les exécuter sur le même serveur.
OriginalL'auteur Ryan Schumacher | 2012-03-05
Vous devez vous connecter pour publier un commentaire.
- Je utiliser Supervisord & Monit, plus de détails et de configuration exemple ici: La Gestion des processus à Bringr.
En outre, vous pouvez spécifier la variable d'environnement directement à partir de la supervisord fichier de configuration (voir sous-processus de l'environnement). Mais personnellement, je préfère ajouter ces variables directement à l'intérieur d'un ~/.bashrc sur chaque machine.
Si le numéro de port ne va pas changer pour chaque application (mais le changement entre la production & environnement de développement). Je vous recommande de les spécifier à l'intérieur d'une config.json (ou directement à l'intérieur du paquet.json). Et la config.json contient un numéro de port différent pour chaque application en fonction de l'environnement:
Et à l'intérieur de
myapp.js
:Avec
process.env.NODE_ENV
déclaré dans ~/.bashrc.Réponse édité, j'espère qu'elle répondra à vos questions. Personnellement, je préfère garder le supervisord fichier de configuration aussi petite que possible et gardez la modification de bits/env. variables *.json fichiers de configuration.
OriginalL'auteur FGRibreau
J'ai écrit une application nodegod que j'utilise pour une poignée de déploiements de peut-être 10 apps chacun.
nodegod lit une liste d'applications à partir de json. Il a un état interne de la machine pour chaque application qui gère l'application du cycle de vie d'une manière sécuritaire, y compris redémarre, et les fonctions de la page web de démarrage et d'arrêt/debug.
L'interface web utilise des sockets web, de sorte que vous pouvez gérer à distance les serveurs de ssh.
Que vous déployez sur rsync, apps redémarrer automatiquement.
Parce que nodegod surveille la sortie standard (stdout) d'autres applications, vous pouvez capturer une application du dernier souffle de vie, comme erreur de segmentation et de malloc erreurs.
J'utilise une fourchette de http-proxy en face d'un tas de express, de sorte que n'importe quel nombre d'applications peuvent partager un seul port du serveur par dns pour http et web sockets.
J'ai écrit un haraldops module pour lire la configuration de l'application provenant de l'extérieur de l'arborescence source. Avec cela, vous pouvez surveiller et d'obtenir des e-mails à chaque fois que quelque chose est en place avec une application.
Application configurations, je garde dans un repo git dans le système de fichiers.
Ce n'est pas la science de fusée, et ça s'intègre très bien ensemble. Seulement nœud et json: SIMPLE devient de plus en plus fait.
OriginalL'auteur Harald Rudell
Si votre serveur a l'arriviste, il suffit d'utiliser il. Je n'ai pas de chance avec forever et similaires.
Si vous souhaitez procéder à upstart, roco serait bien que le déploiement de la solution:
Oui, décrire tout ce dont vous avez besoin: au moins port et le nom du serveur(s).
OriginalL'auteur Anatoliy
Nous essayons constamment d'améliorer
forever
ethaibu
à Nodejitsu. Semble que l'approche que vous cherchez ici est un.forever
fichier de configuration d'options complexes. Cette fonctionnalité a été sur notre carnet de commandes pour un certain temps maintenanthttps://github.com/nodejitsu/forever/issues/124
Vérifier. Je considère qu'il est assez haute priorité, après la prochaine série d'améliorations de performances.
forever
est toujours supporté! Lenpm
paquet n'a pas été mis à jour en temps, à moins que j'ai raté quelque sorte. Merci!Merci pour cette entrée. Alors serait-il optimal pour créer un script de gestion qui permettraient de générer les .jamais config dans chaque application?
OriginalL'auteur indexzero
Ces jours que j'ai prises à l'aide de dokku qui est un OSS clone de heroku. Le déploiement est aussi simple que de s'assurer que votre paquet.json contient un script de démarrage. Par exemple:
Exemple D'Application
OriginalL'auteur Ryan Schumacher