上游 nginx (反向代理到 uWSGI) 未收到 HTTP/1.1 标头

上游 nginx (反向代理到 uWSGI) 未收到 HTTP/1.1 标头

我遇到了一个奇怪的问题,上游 nginx (uWSGI 的反向代理 - python) 不发送 HTTP/1.1 标头,并且所有标头都在实际响应数据中接收。此版本的 nginx 由 jenkins 构建服务器编译。

为了验证是否存在 nginx 问题,我在 jenkins 构建服务器之外为我的 arm 平台交叉编译了 nginx,并且运行良好。

非常感谢任何有关调试此问题的指导。如果有人需要,我可以根据要求发布 nginx conf。

设置

nginx v1.6.2 <--------------------> nginx v1.6.2 <---------> Client
  (debian)                             (arm)
  |
uWSGI

以下是不工作curl 输出,

> GET /login.html HTTP/1.1
> Host: 192.168.128.2:8080
> User-Agent: curl/7.51.0
> Accept: */*
>
Server: nginx/1.6.2
Date: Fri, 05 Jan 2018 12:00:24 GMT
Content-Type: text/html
Content-Length: 160
Connection: close
Location: http://192.168.13.2/

<html>
<head><title>302 Found</title></head>
<body bgcolor="white">
<center><h1>302 Found</h1></center>
<hr><center>nginx/1.6.2</center>
</body>
</html>

在职的curl 输出如下,

> GET /login.html HTTP/1.1
> Host: 192.168.128.2:8080
> User-Agent: curl/7.51.0
> Accept: */*
>
< HTTP/1.1 302 Moved Temporarily
< Server: nginx/1.6.2
< Date: Fri, 05 Jan 2018 11:58:17 GMT
< Content-Type: text/html
< Content-Length: 160
< Location: http://192.168.128.2:8080/
< Connection: keep-alive
<
<html>
<head><title>302 Found</title></head>
<body bgcolor="white">
<center><h1>302 Found</h1></center>
<hr><center>nginx/1.6.2</center>
</body>
</html>

答案1

我认为提供程序构建环境正在使用 CFLAG-Os -g -pipi选项。我确认它s-Os其中不起作用。选项-O -g -pipe有效。看起来arm我们使用的编译器无法很好地处理它,或者nginx代码需要修复。我验证的软件是nginx v1.6.2nginx v1.10.3以防有人有兴趣深入研究。

相关内容