Google计算负载均衡器会在DELETE上引发400 Bad Request

Mat*_*son 3 load-balancing google-compute-engine google-cloud-platform

我通过实例模板创建了一个实例组,并将此实例组与http负载均衡器使用的后端服务对齐.

现在,当我打开一个URL从我创建实例组的实例虚拟机,我可以做GET POST,并DELETE请求和所有的请求的速度快,一切都按预期工作.

当我打开负载均衡器的静态IP的URL时.我可以做GETPOST请求,但DELETE请求抛出400 BAD REQUEST一个响应页面说:

那是一个错误.

您的客户发出了格式错误或非法的请求.我们知道的就这些.

其他负载均衡器问题:

  • 通过负载均衡器,站点速度很慢.也许有一个我缺少的设置,我很确定我把所有东西都设置为我们 - 中心-1b.
  • 有时网站甚至没有出现.它适用于http,但它不适用于https,反之亦然.负载均衡器具有非常奇怪的行为.

我的VM api访问权限设置为此实例具有对所有Google Cloud服务的完全API访问权限

我正在使用Django作为我的api层,我打开了这个主机上的调试,发现在DELETE通过loadbalancer static ip发出请求时,请求甚至没有通过.我缺少防火墙设置吗?

请帮助我再次快速执行此操作并允许DELETE请求发生.

谢谢!

Ian*_*ick 8

您是否在请求正文中发送任何内容?

400 BAD REQUEST如果您尝试在正文中发送任何内容,Google负载均衡器会做出响应.检查这是否是问题的简单方法是启动Chrome Developer工具并检查Request Payload部分是否为空/不存在.

HTTP规范没有明确说明你可以传递身体中的任何东西,所以这没有错,只是未定义.

对于所有请求,还是仅包含大量元素的页面,负载均衡器是否较慢?

  • 这是一个天赐之物...我的应用程序中的所有删除请求都在谷歌云负载均衡器后面移动我们的服务器后,原来是因为谷歌的这种愚蠢行为.HTTP 1.1规范允许在DELETE请求中使用正文,我不明白为什么他们认为为完全可接受的请求返回400错误是一个明智的想法.:( (3认同)
  • 这对于 GET 请求也有效 (3认同)