Nginx / ngrest auf einer virtuellen Ubuntu-Maschine für den Zugriff von außen konfigurieren

398
CaTx

Ich habe eine Ubuntu 18.04 VM, die unter Windows 7 ausgeführt wird. Die VM ist für Bridged Adapter from Virtual Box konfiguriert. Es kann online gehen, hat dasselbe IP-Schema wie das lokale Netzwerk und kann von Windows aus per Ping angesprochen werden.

Auf die Nginx-Beispielseite (info.php) kann im Browser mit IP_address/info.php zugegriffen werden.

Ich habe einen ngrest-Dienst, der mit dieser Seite erstellt wurde, und er läuft problemlos im Browser der VM localhost:9098/pets/getPets.

ngste Seite innerhalb der VM Auf diesen Dienst kann jedoch von Windows aus nicht zugegriffen werden. Ich benutze IP_address:9098/pets/getPets. Kann mir jemand zeigen, wie es konfiguriert werden kann? Vielen Dank.

0

1 Antwort auf die Frage

0
CaTx

Ich wechselte zu pistache( hier vorgestellt ), nachdem ich die Lösung nicht gefunden hatte. Wieder ist der helloBeispieldienst nicht von einem anderen Computer aus zugänglich. Es ist offensichtlich, dass das Problem systemisch ist. Ein Freund von mir schlägt vor, die Firewall-Einstellungen zu überprüfen. Schließlich helfen diese beiden Befehle, das Problem einzugrenzen:

sudo ufw status sudo netstat -tulpn 

Lässt nach der Installation des LEMP- Stacks ufwnur eingehende Anforderungen für den Port zu 80:

Nginx HTTP ALLOW Anywhere Nginx HTTP (v6) ALLOW Anywhere (v6) 

Aus diesem Grund sind beide Dienste von pistacheund ngrestnicht von anderen Computern aus zugänglich, während der NginX-Beispielstandort vorhanden info.phpist. Die von diesen Diensten verwendeten Ports können hinzugefügt werden mit:

sudo ufw allow 9080 sudo ufw allow 9098 

Die geöffneten Ports werden durch erneutes Ausführen angezeigt sudo ufw status. Der ngrestDienst ist jedoch immer noch nicht erreichbar. Laufende sudo netstat -tulpnShows:

netstat

Das Bild zeigt an, dass NginX neu portiert wurde, 81um die Lösung herauszufinden. NginX-Beispielsites und die helloServices ( pistache) sind an die 0.0.0.0IP-Adresse gebunden, die sich von der des ngrestServices unterscheidet. Googeln umher landet mich hier . Offenbar ngresthat ‚s Autor nicht erwähnt, wie der Dienst außerhalb Computer in seinem Führer zu ermöglichen. Die Spezifikationen befinden sich hier . Mit NGREST_SERVER_IPwird eine andere IP-Adresse angegeben. Der Dienst wird erneut aktiviert mit:

NGREST_SERVER_IP=0.0.0.0 ngrest 

Nun ist der ngrestDienst von außen zugänglich. Diese Funktion stammt offenbar aus dieser Anfrage . NGREST_SERVER_PORTist ein weiteres nettes Feature. Ein ngrestDienst könnte also folgendermaßen aufgerufen werden:

NGREST_SERVER_IP=0.0.0.0 NGREST_SERVER_PORT=9090 ngrest 

Diese Einstellungen haben es möglich gemacht:

die Einstellungen