Ich habe eine Ruby on Rails App, die auf elastischen Bohnenstangen läuft und ich wollte einige große Dateien hochladen - möglicherweise um 5GB. Um dies zu tun, habe ich eine Konfigurationsdatei auf .ebextensios/nginx/01_upload_file_size.config mit folgendem Inhalt:Elastische Bohnenstange setzt .config Datei zurück
files: "/etc/nginx/conf.d/proxy.conf" : mode: "000755" owner: root group: root content: | client_max_body_size 20G;
Nachdem ich den Code EB bereitstellen, ich starten Sie den nginx-Server mit dem Befehl sudo service nginx reload
. Dies scheint für eine Weile zu funktionieren.
Das Hochladen großer Dateien am nächsten Tag gibt mir den Fehler "Verbindung wird zurückgesetzt". Die Protokolldatei log/nginx/error.logs
sagt mir Fehler Client soll zu großen Körper senden: 24084848 Bytes
Ich habe keine Ahnung, warum dies auftritt. Es scheint so, als würde die Konfigurationsdatei nach einer kurzen Zeit ignoriert oder vielleicht zurückgesetzt, aber ich sehe keine Referenz in der Dokumentation. Beachten Sie, dass ich große Dateien problemlos hochladen kann, wenn ich erneut in die eb Umgebung surfe und nginx neu starte.
Nachdem ich mich um alles gekümmert hatte, sah ich diese Ereignisse auf meiner EB-Konsole.
Instanz [i-076127f714faac566] zu Ihrer Umgebung hinzugefügt.
Instanz [i-0c51791325b54873c] aus Ihrer Umgebung entfernt.
Ich merke auch, dass die IP-Adresse des Hosts ändert, wenn die Konfiguration zurückgesetzt wird.
Ich denke, dass, wenn die Instanzen automatisch hinzugefügt und aus EB entfernt wurden, es nicht die Konfigurationsdatei anwendete oder den Nginx-Server nicht wie ich manuell über SSH neu startete.
Die Frage ist also: Wie stelle ich sicher, dass der client_max_body_type immer auf 20G eingestellt ist, auch nachdem die Instanz entfernt und neu hinzugefügt wurde? Oder wie man die Konfiguration persistent macht, damit ich den nginx Server nicht manuell neu starten muss?
Danke für die Antwort. Ich verfüge über eine automatische Skalierungsumgebung, sodass die Instanzen abhängig von der Serverlast automatisch hinzugefügt/entfernt werden. Ich habe einige Spuren von Cloudwatch auf den Baumstämmen gefunden, also werde ich tief in das Thema eindringen. Im Moment habe ich die automatische Skalierung entfernt und das Problem vorübergehend etwas vermieden. – Himsim
Freut mich zu hören! Es gibt eine Standard-Autoscaling-Regel, die eine Instanz beendet, wenn der Netzwerkverkehr unter einen bestimmten Schwellenwert fällt, was bei Websites mit wenig Verkehr häufig vorkommt. – Brian