Wie hosten Sie mehrere node.js-Apps in derselben Subdomain mit Heroku?

8

Wir haben eine Basisdomäne von http://api.mysite.com . Dies sollte als Front für alle unsere APIs dienen. Nehmen wir an, wir haben zwei verschiedene APIs, auf die mit der folgenden URL-Struktur zugegriffen wird:

http://api.mysite.com/launchrockets
http://api.mysite.com/planttrees

Diese sind total verschieden. Was das Heroku betrifft, so haben wir zwei Möglichkeiten.

1) Legen Sie alles in eine Anwendung auf Heroku. Das fühlt sich falsch an (sehr falsch) und könnte zu einer höheren Wahrscheinlichkeit führen, dass Änderungen in einer API versehentlich die andere zerstören.

2) Habe 3 verschiedene Heroku-Apps. Der erste als Proxy ( http://mysite-api-proxy.herokuapp.com ), der sich die eingehende Anfrage ansieht und mit einem Modul wie bouncy zu http://planttrees.herokuapp.com oder http://launchrockets.herokuapp.com umleitet oder Ссылка .

Ich lehne mich Richtung Option 2, aber ich bin besorgt über die Belastung der Proxy-App. Für Web-Frameworks mit einer synchronen Architektur wäre dieser Ansatz katastrophal. Da node.js jedoch das Cluster-Modul verwendet und asynchron ist, denke ich, dass sich das skalieren lässt.

Ich habe ähnliche Fragen schon früher gesehen, aber die meisten bezogen sich auf synchrone Frameworks, bei denen Option 2 definitiv eine schlechte Wahl wäre. Diese Frage ist spezifisch für den Knoten und wie er ausgeführt wird.

Gedanken zum besten Weg, dies zu gestalten?

    
TehNrd 14.03.2014, 03:37
quelle

3 Antworten

3

Hier ist ein Blogbeitrag, den ich geschrieben habe, um diese Frage zu beantworten. Es gibt viele Optionen, aber Sie haben entschieden, was für Ihre App und Architektur geeignet ist.

Ссылка

    
TehNrd 18.03.2014 04:50
quelle
3

Ich habe ein einfaches Demo-Projekt implementiert, um eine Multi-App-Struktur zu erreichen.

Ссылка

Mit dieser Struktur können Sie einfach jede App unabhängig einrichten und pflegen.
Ich hoffe, das wäre eine Hilfe für dich.

    
toshi 17.04.2014 02:46
quelle
1

Ähnlich wie @TehNrd verwende ich einen Proxy. Dieser Ansatz erfordert jedoch nicht mehrere Heroku-Apps, nur eine:

Auf Ihrer Web-App:

%Vor%

Auf Ihrem API-Server:

%Vor%     
Ricky 17.12.2014 18:38
quelle

Tags und Links