我可以使用以下命令成功运行我的 Django 站点:
fadedbee@box:/srv/myproject $ uwsgi --http :8000 --module myproject.wsgi
我可以将浏览器指向端口 8000 并获取网页(如预期的那样,没有静态内容)。
遵循 https://uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html 并可能犯了几个错误后,nginx 尝试向上游发送请求,但最终超时。
当我使用浏览器访问端口 8000 时,我可以看到预期的 HTTP 协议:
0x0030: 1b11 0088 4745 5420 2f20 4854 5450 2f31 ....GET./.HTTP/1
0x0040: 2e31 0d0a 486f 7374 3axx xxxx xxxx xxxx .1..Host:xxxxxxx
0x0050: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxxxxxxxxxxxxxx
0x0060: xx3a 3830 3030 0d0a 5573 6572 2d41 6765 x:8000..User-Age
0x0070: 6e74 3a20 4d6f 7a69 6c6c 612f 352e 3020 nt:.Mozilla/5.0.
但是 nginx 发送的请求似乎使用了不同的协议(有 uwsgi 协议吗?)。
0x0030: 220b a499 0073 0300 0c00 5155 4552 595f "....s....QUERY_
0x0040: 5354 5249 4e47 0000 0e00 5245 5155 4553 STRING....REQUES
0x0050: 545f 4d45 5448 4f44 0300 4745 540c 0043 T_METHOD..GET..C
0x0060: 4f4e 5445 4e54 5f54 5950 4500 000e 0043 ONTENT_TYPE....C
0x0070: 4f4e 5445 4e54 5f4c 454e 4754 4800 000b ONTENT_LENGTH...
我在 nginx 配置或 uwsgi 调用中犯了什么错误,导致 uwsgi 无法回复 nginx 的非 HTTP 请求?
有两个单独的协议。
我需要使用:
fadedbee@box:/srv/myproject $ uwsgi --socket :8000 --module myproject.wsgi