为什么 Nginx 只对移动设备给出 502 错误?

Why does Nginx give a 502 error only for mobile devices?

使用 Nginx,我收到错误:

Error 502 - Bad Request The server could not resolve your request for uri: http://domain.name/file/path

奇怪的是,只有当我的 phone 使用手机运营商的数据时,我才会收到此错误。当我在 Wi-Fi 上使用我的 phone 或当我使用台式计算机时,服务器可以很好地提供一切服务。当我使用我的 iPad 通过 Wi-Fi 连接到我的 phone 并且我的 phone 充当移动热点时,它甚至可以工作。

502 错误代码表明 php-fpm 的反向代理或服务请求存在问题。这些我都不做。

因为这个错误只在特定情况下发生,我认为它必须与我的 phone 发送的请求有关。 (Nexus 5、Chrome、Android 棒棒糖)

我的 nginx.conf 和其他配置文件正在通过测试。我用过:

sudo nginx -t

它说 "the configuration file syntax is okay" 和 "configuration file test is successful."

可能发生了什么?

在对我的 Nginx 配置进行三重检查后,我想到了查看服务器 80 端口上的所有 tcp activity。

我安装了 tcpdump:

sudo apt-get install tcpdump

然后运行吧,只寻找80端口的tcp流量:

sudo tcpdump 'tcp port 80' -i eth0

我注意到所有其他流量只是 'IP',但是当我从我的 phone 发送请求时,它是 'IP6'。

我的服务器未启用 ipv6,但使用附加的侦听指令即可轻松解决此问题:

listen [::]:80;