
Ich arbeite daran, Nginx als Load Balancer zu konfigurieren und Reverse-Proxy-Anfragen an eine Node-Anwendung auf einem anderen Droplet zu senden. Ich habe zwei Digital Ocean-Droplets (Ubuntu 18.04 für beide) und habe private Netzwerke aktiviert. Meine Droplets befinden sich in derselben Region.
Kann ich die private IP-Adresse für die server
IP im Upstream-Konfigurationsblock in meiner nginx.conf-Datei verwenden? Meine Node-App führt Express JS auf Port 3000 aus.
upstream nodeApiApp {
server 10.1.2.150:3000 fail_timeout=0;
keepalive 60;
}
Momentan gelingt es mir nicht, die beiden Droplets miteinander kommunizieren zu lassen. Können Sie mir Hinweise geben, wo das Problem liegen könnte?
Auf der Webseite wird dieser Fehler angezeigt: 504 Gateway Time-out
. Beim Durchsuchen der Fehlerprotokolle für nginx wird mir der folgende Fehler angezeigt:
2019/07/20 21:53:59 [error] 3136#3136: *1165 upstream timed out (110:
Connection timed out) while connecting to upstream, client: 68.12.133.91, server: api.example.com, request: "GET / HTTP/2.0", upstream: "http://10.1.2.150:3000/", host: "api.example.com"
Wenn ich die Protokolle meiner Node-App verfolge, sehe ich keine Aktivität.
Nachdem ich mich per SSH mit meinem Load Balancer-Droplet verbunden habe, kann ich weder pingen noch telneten. Könnte es ein Firewall-Problem sein? Wenn ja, wie würde eine allgemeine Konfiguration der eingehenden/ausgehenden Regeln für die Kommunikation von Droplet zu Droplet aussehen?
Basierend auf den Dokumenten hätte ich gedacht, dass diese beiden virtuellen privaten Serverinstanzen miteinander kommunizieren könnten, da sie sich in derselben Region befinden. Ich habe mich beim Bereitstellen dieser Instanzen dafür entschieden, das private Netzwerk zu aktivieren. Das private Netzwerk sollte vollständig eingerichtet sein.