3

我通過實例模板創建了一個實例組,並將此實例組與一個由http負載平衡器使用的後端服務對齊。Google計算負載平衡器在DELETE上拋出400錯誤請求

現在,當我打開一個URL從我創建實例組的實例虛擬機,我可以做GETPOSTDELETE請求和所有的請求的速度快,一切都按預期工作。

當我打開負載平衡器的靜態IP的URL。我可以做GETPOST請求,但請求DELETE拋出一個400 BAD REQUEST與響應頁面說法:

這是一個錯誤。

您的客戶發出格式不正確或非法的請求。這就是我們所知道的 。

其他負載均衡問題:

  • 該網站是通過負載均衡相當緩慢。也許 有一個我想念的設置,我很確定我把所有的東西都設置爲 us-central-1b。
  • 有時該網站甚至不顯示。它將工作http,但然後 它不適用於https和反之亦然。負載平衡器的行爲非常奇怪 。

我的VM API訪問權限設置爲此實例擁有對所有谷歌雲服務

我使用Django作爲我的API層,我就打開調試該主機上,看到完整的API訪問該當通過負載均衡器靜態IP發出請求時,DELETE請求甚至沒有通過。有沒有我錯過的防火牆設置?

請幫我再做一次,並允許DELETE請求發生。

謝謝!

回答

7

您是否在請求正文中發送任何內容?

如果您嘗試在正文中發送任何內容,Google負載均衡器將以400 BAD REQUEST響應。檢查這是否是問題的簡單方法是觸發Chrome開發人員工具並檢查請求有效負載部分是否爲空/不存在。

HTTP規範沒有明確地說你可以傳遞任何內容,所以這沒有錯,只是未定義。

負載平衡器是否對所有請求都很慢或者只是包含很多元素的頁面?

+3

這是一個天賜之物......在我們的服務器移動到谷歌雲負載均衡器之後,我的應用程序中的所有刪除請求都崩潰了,事實證明,這是因爲Google的這種愚蠢行爲。 HTTP 1.1規範允許在DELETE請求中使用一個主體,我不明白爲什麼他們認爲這是一個聰明的主意,爲一個完全可接受的請求返回400錯誤。 :( –

+0

我也會報告Google App Engine發生同樣的問題,DELETE請求不能攜帶任何有效載荷。好的接收的榮譽! –