Ich habe eine Knoten-Anwendung, die gut läuft, wenn ich manuell in die gcloud computeVM kitt und es ausführen.Wie öffne ich den Port 80 für eine node.js-Anwendung ohne deploy.sh-Datei auf gcloud?
Hier sind die Komplikationen (alle realted auf Unix):
1.) ich einen Domain-Namen haben. Also habe ich den DNS-Zonen-Datensatz hinzugefügt, um auf die obige VM zu zeigen.
2.) Für die Compute-VM zu reagieren, sollte es Verfahren auf 80
3.) hören, wenn wir die https://cloud.google.com/nodejs/getting-started/run-on-compute-engine#download_app folgen, gibt es die App auf 8080.
4.) laufen Für die Ports < 1024 werden Root-Berechtigungen zum Öffnen von Ports benötigt.
5.) So von npm Start, änderte es das Skript starten zu verwenden "sudo npm starten"
6.) Dann ist es die folgenden Fehler gab: my-app-Instanz supervisord: nodeapp sudo: nein tty vorhanden und kein askpass-Programm angegeben
7.) Wenn ich jedes Mal "sudo visudo" und fügen Sie die "Benutzername ALL = NOPASSWD:" jedes Mal, wenn ich die Instanz neu starten nach der Bereitstellung, was ich am wenigsten bevorzugen würde.
Ich habe den relevanten Teil des stratup-Skript für weitere Informationen enthalten:
# Install app dependencies
cd /myrepo/opt/app/servers
sudo npm install
# Create a nodeapp user. The application will run as this user.
useradd -m -d /home/nodeapp nodeapp
chown -R nodeapp:nodeapp /myrepo/opt/app/servers
# Configure supervisor to run the node app.
cat >/etc/supervisor/conf.d/node-app.conf << EOF
[program:nodeapp]
directory=/myrepo/opt/app/servers
command=sudo npm start
autostart=true
autorestart=true
user=nodeapp
environment=HOME="/home/nodeapp",USER="nodeapp",NODE_ENV="production"
stdout_logfile=syslog
stderr_logfile=syslog
EOF
A.) Meine Forderung ist einfach: Mein Google-Domain verweist auf die oben Compute jetzt VM. Wann immer der Benutzer www.domainname.com eingibt, sollte er ihn ohne Portnummern in der URL zur Website bringen. Wie öffne Port 80 mit einer einfachen Modifikation des Start-Skripts (bevorzugt)?
B.) Und wenn ich mit deploy.sh gehen muss, das im Tutorial spezifiziert wurde, wird es automatisch ausgeführt? Oder wenn ich es automatisch ausführen muss, was das Verfahren ist.
Hinweis: Ich bin kein Unix-Experte. Jede Hilfe wäre willkommen.
Ich habe nginx aktiviert. Und ich kann die Conf-Dateien hochladen. So löschte ich meinen vorherigen Kommentar !!! Versuchen, Reverse-Proxy zu überprüfen. –
nginx Reverse Proxy funktioniert. :) ... Domainname auf einem anderen Server auf 8080 geroutet:). Aber es sieht so aus, als ob nginx bezahlt wird. Jetzt bin ich auf Probe. Und ich denke, sie erlauben nur "nginx plus" in der Cloud. –
Es gibt ein Premium-Nginx-Plus, aber Sie sollten in der Lage sein, die kostenlose Open-Source-Version auf einer beliebigen Linux Google Compute Engine-VM einzurichten. Sehen Sie zum Beispiel [dieses Tutorial] (https://cloud.google.com/solutions/https-load-balancing-nginx) (es tut nicht genau, was Sie hier wollen, aber es gibt ein Beispiel für die kostenlose Version von Nginx). –