2012-10-28 15 views
7

Mam zamiar zrobić trzy witryny za pomocą node.js. Mam kilka popularnych szablonów wśród witryn. Czy powinienem uruchomić wszystkie trzy witryny na jednej instancji node.js?Uruchamianie wielu witryn na węźle node.js

Jestem świadomy oprogramowania pośredniego "vhost", które pozwala na uruchamianie wielu domen na jednym serwerze http. Czy jest jakaś lepsza opcja, aby to zrobić?

Mam również kilka statycznych szablonów html i nie wiem, jak sobie z nimi radzić w node.js?

Wreszcie chciałbym poznać opcje hostingu dla tego rodzaju instalacji?

+0

Należy wykorzystać nginx. Sprawdź ten wpis: http://stackoverflow.com/questions/5009324/node-js-nginx-and-now – Pardoner

Odpowiedz

14

Ja sam musiałem zrobić to dokładnie to samo. To, co chcesz zrobić, to użyć odwrotnego proxy.

z którego korzystam jest tutaj: https://github.com/nodejitsu/node-http-proxy

Wystarczy zainstalować pakiet Proxy: npm install http-proxy

Co mogę zrobić, to mieć pełnomocnika działającego na serwerze na porcie 80. ustawić DNS się na każdej domenie wskazać ten serwer.

Każda aplikacja działa na tym samym serwerze (przy użyciu ekranów).

Na przykład:

MySiteApplication1 - 3001 
MySiteApplication2 - 3002 
MySiteApplication3 - 3003 

Następnie plik serwer proxy będzie wyglądać następująco

var httpProxy = require('http-proxy'); 

var server = httpProxy.createServer({ 
    router: { 
    'mysite1.com': 'localhost:3001', 
    'mysite2.com': 'localhost:3002', 
    'mysite3.com': 'localhost:3003' 
    } 
}); 

server.listen 80 
+0

Dzięki Brendan, Gdzie zajmujesz się aplikacjami swojego węzła? Jak działa httpProxy pod względem wydajności? Czy masz jakieś statyczne dane, jeśli tak, to jak sobie z tym radzisz? Pozdrowienia –

+1

Im hosting to na VPS, który kupiłem. Więc coś w rodzaju linode jest w porządku. W przypadku danych statycznych prawdopodobnie będziesz chciał użyć czegoś takiego jak nginx, ale nie mam żadnych problemów. Możesz użyć 'ab' aby go przetestować :) – Menztrual

+1

Ta odpowiedź jest nieaktualna. 'node-http-proxy' [removed] (https://github.com/nodejitsu/node-http-proxy/issues/652) opcja' router', ponieważ "należy do oddzielnego modułu." ['http-master'] (https://github.com/encharm/http-master) wydaje się być odpowiedzią na to i wewnętrznie używa' node-http-proxy'. – Nateowami

Powiązane problemy