【发布时间】:2022-08-09 19:21:06
【问题描述】:
我正在尝试通过 uWSGI/nginx 为 python 应用程序提供服务。 Ubuntu 21.10uWSGI 2.0.20
该应用程序有几个端点:
- 用于测试的 GET(它只返回字符串 \"hello\")
- 具有不同路由的 POST 端点,它接受一些 json 数据并返回一些输出。
该应用程序在托管环境中运行。
- 当我尝试将它放在 nginx 服务器后面时,GET 端点工作正常,但 POST 重新调整为 400
- 然后我尝试仅通过烧瓶运行应用程序(无 uWSGI/nginx),两个端点都工作。
- 然后我关闭flask进程并通过命令行运行uWSGI:
uwsgi --socket 0.0.0.0:5555 --protocol=http -w runserver:app在这种情况下,GET 可以正常工作,
[pid: 19308|app: 0|req: 5/5] 103.113.137.67 () {36 vars in 705 bytes} [Tue Nov 23 08:21:12 2021] GET / => generated 5 bytes in 0 msecs (HTTP/1.1 200) 2 headers in 78 bytes (1 switches on core 0)但 POST 失败
[pid: 19308|app: 0|req: 2/2] 103.113.137.67 () {26 vars in 394 bytes} [Tue Nov 23 07:52:40 2021] POST /distance/term => generated 187 bytes in 1 msecs (HTTP/1.1 400) 2 headers in 89 bytes (1 switches on core 0)(nginx作为反向代理被配置为监听55555端口,所以5555上的uWSGI不会导致端口冲突)
所以:
- 应用程序没有问题。否则烧瓶也会崩溃
- Nginx 配置似乎没有问题; GET 端点正常工作
我该如何调试这个问题?