In vielen Szenarien bewerbe ich mich heutzutage für einen VPS -Host, um ein Webprojekt zu hosten und auszuführen. Ich bin keine Ausnahme. Ich habe einen kleinen Sieg 03 VPS gekauft, um sie zu verwenden. Während des Nutzungsprozesses konfrontiert wir ein Problem, dh der gleiche Art der Serverumgebung ist in Ordnung. Wenn jedoch drei Arten von Serverprojekten mit einem PHP, einem ASP und einem JSP zusammenarbeiten, wie sollten wir den einzigen Port 80 zuweisen? Da kommerzielle WWW -Websites häufig nur Port 80 belegen können. Wenn Sie nur Dienste wie Schnittstellen durchführen, steht die Verwendung anderer Ports nicht mit Port 80 in Konflikt. Viele Entwickler stehen vor dem Problem von Port 80, und die tatsächliche Situation wird durch die Kosten begrenzt. Denn der Kauf eines VPS für ein Projekt ist nicht wirtschaftlich, nicht kostengünstig und es ist nicht bequem zu verwalten. Daher sollten wir sorgfältig überlegen, wie Sie es an mehrere Server verteilen können, während wir einen Port 80 bereitstellen, sodass verschiedene Hosts ihre jeweiligen Webprojekte ausführen können.
Lieber, können wir sagen, dass diese Anforderung realisiert wird? Ja, dies ist keine "magische Technologie" oder eine komplexe Technologie. Ich frage mich, ob Sie das Verständnis des "Reverse -Proxy" in Netzwerkdiensten haben. Eine der Funktionen besteht darin, die Verteilung der Ports zu vervollständigen. Wir können den Domänennamen auch als Route zur Verteilung verwenden: Alle vom AA.com -Domänennamen angeforderten Domänennamen werden für die Ausführung an PHP -Port 82 verteilt. Alle vom BB.com -Domänennamen angeforderten Domänennamen werden zur Ausführung an ASP Port 83 verteilt. ... und so weiter. Natürlich ist der Hafen hier nur für Anweisungen. Sie können es nach Belieben konfigurieren. Wie auch immer, die von Port 80 erhaltene Anfrage wird zuerst bearbeitet und dann verteilt. Reverse Proxy dreht in Laiens Begriffen nur die linke Hand in die rechte Hand.
Immer wenn der Reverse-Proxy erwähnt wird, denken die Leute normalerweise an Nginx, aber heute ignorieren wir die berühmte Nginx vorerst und verwenden NodeJs, einen serverseitigen Bruder, der auch Einzel- und Ereignisschleifen verwendet. Zunächst verwendet Node JS für die Serverprogrammierung und nicht für Nginx, um Konfiguration oder LuA zu schreiben, was mehr mit meinem Geschmack entspricht. Zweitens kenne ich den Knoten besser und es ist einfacher in allen Aspekten zu konfigurieren.
Das Node-HTTP-Proxy-Paket, das diese Funktion vervollständigt. Um herunterzuladen und zu installieren, geben Sie bitte ein:
NPM HTTP-Proxy installieren
Erstellen Sie nach Abschluss der Installation eine neue Proxy.js -Datei und geben Sie ein:
var http = require('http'), httpProxy = require('http-proxy');// Create a new proxy Proxy Server object var proxy = httpProxy.createProxyServer({});// Catch exception proxy.on('error', function (err, req, res) { res.writeHead(500, { 'Inhaltstyp': 'Text/Plain'}); // Rufen Sie in jeder Anforderung die Methode proxy.web (req, res res config) an, um die Verteilung zu erstellen. Erstellen Sie Ihren benutzerdefinierten Server und rufen Sie einfach `proxy an.web ()` zu proxy // eine Webanforderung an das Ziel, das in den Optionen übergeben // auch `proxy.ws ()` to proxy actoServers (acres usws) verwendet werden kann. {// können hier Ihre benutzerdefinierte Logik definieren, um die Anfrage zu bearbeiten, und dann die Anforderung. req.connection.remoteaddress));Wenn Sie über die Kosten für die Verwendung eines Proxy -Servers sprechen, kann es sein, dass mehr CPU -Vorgänge konsumiert werden als ohne mehr Ressourcen.
Nutzungsproblem: Ordner proxy.web kann nicht angeben (req, res, {target: 'http://vevb.com:81/foo/'});