![来自移动网络(无论是否热点)的 POST 请求总是失败](https://linux22.com/image/741738/%E6%9D%A5%E8%87%AA%E7%A7%BB%E5%8A%A8%E7%BD%91%E7%BB%9C%EF%BC%88%E6%97%A0%E8%AE%BA%E6%98%AF%E5%90%A6%E7%83%AD%E7%82%B9%EF%BC%89%E7%9A%84%20POST%20%E8%AF%B7%E6%B1%82%E6%80%BB%E6%98%AF%E5%A4%B1%E8%B4%A5.png)
我注意到,所有通过 4G 或 4G 网络热点连接到互联网的设备在所有的服务器上都出现了有关 POST 请求的奇怪行为。
我是 AWS 上托管的 2 个服务的管理员。这两项服务都使用相同的 Elastic Load Balancer,并通过 ECS (docker) 托管。这两项服务都使用 gunicorn 和 django 运行,但监听不同的端点。
问题是,从具有 4G 或热点连接的设备发出的所有 POST 请求似乎从未到达 ELB(根据日志没有记录任何请求),而这是我控制的第一个入口点。
我使用调试模式并从我的 Android 设备尝试了一些请求,从 Chrome 开发工具的“网络”选项卡中可以看到请求默默失败,没有响应代码。它只是停滞了。
我可以自由地将请求复制为 curl,并且它可以工作。
JS 代码没什么特别的,就是一个典型的 AJAX POST 请求。
知道发生了什么吗?有什么关于如何调试的提示吗?
答案1
我将在此处发布更新,以便将来的任何人都可以清楚地看到解决方案。
Michael Hampton 指出,问题在于我的堆栈配置不正确,无法处理 IPv6 连接。确切地说,我的 ELB 已经处于双栈模式,我的 VPC 有 2 个子网,这两个子网都已经具有与 IPv6 关联的 CIDR 块,但我的路由表没有 ::/0 的路由规则因此所有来自 IPv6 的流量都被丢弃了。我将所有 IPv6 流量转发到与我的 VPC 关联的互联网网关,现在一切都运行顺利。