3

Ich erstellte eine Instanzgruppe über eine Instanzvorlage und richtete diese Instanzgruppe auf einen Back-End-Dienst aus, der von einem http-Lastenausgleich verwendet wird. JetztGoogle Compute Load Balancer löst 400 ungültige Anforderung bei DELETE

, wenn ich eine URL zu einer Instanz vm aus der Instanzgruppe öffne ich erstellt, kann ich GETPOST und DELETE Anfragen tun und alle Anforderungen sind schnell, und alles funktioniert wie erwartet.

Wenn ich die URL auf die statische IP für den Load Balancer öffnen. Ich kann GET und POST Anfragen, aber DELETE Anfragen werfen ein 400 BAD REQUEST mit einer Antwort-Seite sagen:

, dass ein Fehler ist.

Ihr Client hat eine ungültige oder ungültige Anforderung ausgegeben. Das ist alles, was wir wissen.

Andere Load Balancer Fragen:

  • Die Seite ist ziemlich langsam durch den Load Balancer. Vielleicht gibt es eine Einstellung, die ich vermisse, ich bin ziemlich sicher, dass ich alles auf us-central-1b gesetzt.
  • Manchmal erscheint die Seite nicht einmal. Es funktioniert für http, aber dann es funktioniert nicht für https und umgekehrt. Der Load Balancer hat sehr merkwürdige Verhalten.

Meine VM api Zugriff Dieser Instanz gesetzt hat volle API-Zugriff auf alle Google-Cloud-Services

ich Django als meine api Schicht bin mit, ich auf diesem Host auf das Debuggen drehte sich um und sah, dass Die Anfragen DELETE kamen nicht einmal durch, wenn Anfragen über die statische IP-Adresse loadbalancer gestellt wurden. Gibt es eine Firewall-Einstellung, die ich vermisse?

Bitte helfen Sie mir, dies wieder schnell zu machen und die DELETE Anfragen passieren zu lassen.

Danke!

Antwort

7

Senden Sie etwas in den Körper der Anfrage?

Google Load Balancer wird mit 400 BAD REQUEST antworten, wenn Sie versuchen, etwas in den Körper zu senden. Eine einfache Möglichkeit, das Problem zu beheben, besteht darin, Chrome Developer Tools zu starten und zu überprüfen, ob der Abschnitt "Payload anfordern" leer ist/nicht vorhanden ist.

Die HTTP-Spezifikation sagt nicht explizit, ob Sie etwas im Körper übergeben können, also ist dies nicht falsch, nur undefined.

Ist der Load Balancer für alle Anfragen oder nur für Seiten mit vielen Elementen langsam?

+3

Das war ein Geschenk des Himmels ... alle löschen Anfragen in meiner App brach nach dem Verschieben unserer Server hinter einem Google Cloud Load Balancer und es stellte sich heraus, dass wegen dieser idiotischen Bewegung von Google sein. Die HTTP 1.1-Spezifikation erlaubt eine Stelle in DELETE-Anfragen, ich verstehe nicht, warum sie dachten, es sei eine kluge Idee, einen 400-Fehler für eine vollkommen akzeptable Anfrage zurückzugeben. :( –

+0

Ich würde auch berichten, dass das gleiche Problem mit Google App Engine auftritt. DELETE-Anfragen können keine Nutzlast tragen.Kudos für den schönen Fang! –