我有一个非常简单的设置有一个非常特殊的问题。
该设置部署了 nginx Web 服务器以提供一些静态页面。它还有一个用于处理 POST 请求的后端 uwsgi 守护进程。
我的nginx位置配置如下
#For handling POST Request
location = / {
# index index.html;
# autoindex on;
uwsgi_pass unix:/tmp/uwsgi.sock;
include uwsgi_params;
}
#For handling static page requests under /custpages
location ^(/custpages).*(\.html) {
autoindex off;
}
当我部署此服务器并从浏览器发出发布请求时,nginx 不会将 POST 数据发送到 uwsgi。
但有趣的是,当我使用 python 请求发出独立的 POST 请求时,它按预期工作。
我想知道,与独立请求相比,基于浏览器的 POST 请求有什么问题,因为两者都通过 nginx。
任何指针?
提前致谢
[更新]
这似乎是 uwsgi 的问题。对于从 python 请求发送的 POST,它返回 POST 数据,因为我可以在 uwsgi 日志中看到响应字节。
但是对于从浏览器发送的请求,响应字节为零。
在这两种情况下,uwsgi 都从 nginx 接收正确的 POST 数据,所以这似乎与 uwsgi 有关
[更新 2]
进一步更新。这个问题与 nginx 或 uwsgi 无关。
我正在为我的服务器后端应用程序使用带有flask微框架的python,问题是这样的。
我使用当前请求上下文对象读取 POST 数据如下 data_string = request.data
现在,事实证明,当从浏览器发出 POST 时,request.data 为空当从 python 请求发出 POST 时,request.data 包含正确的 POST 数据。
所以,那里有任何烧瓶书呆子,请帮我解决这个问题