uWSGI 返回空响应

uWSGI 返回空响应

我有一个 Django 网站,我正尝试通过 uWSGI 为其提供服务。我已按如下方式启动服务器:

uwsgi --emperor .
Ctrl+Z
bg 1

(有两个 .ini 文件分别指向网站的测试版和生产版,分别在 9001 和 9002 上提供服务)

然后我尝试获取我的网站:

curl http://localhost:9002

当我这样做时,我收到一条消息,说该 vassel 是忠诚的,但没有实际响应。然后 uwsgi.log 包含以下内容:

[pid: 5071|app: 0|req: 2/2] 127.0.0.1 () {26 vars in 357 bytes} [Tue Jul 23 13:20:21 2013] GET / => generated 0 bytes in 1 msecs (HTTP/1.1 302) 2 headers in 96 bytes (1 switches on core 1)

没有记录任何错误。

我应该说,这在重新启动之前工作正常,所以 uwsgi.ini 文件应该没问题。

有什么想法我应该从哪里开始诊断这个问题?

答案1

我遇到了一些问题,结果是我的 wsgi 应用程序返回的是 UNICODE 而不是 BYTE STRINGS (我在 python3 上);并且日志中没有显示任何内容...WSGI 期望输出中的是字节字符串,而不是 unicode。

在里面可调用您的应用程序,而不是return "string"您应该使用return b"string"return "string".encode("utf-8")

def application(env, start_response):
    start_response('200 OK', [('Content-Type', 'text/html')])
    # One of the below can be used.
    return "string".encode("utf-8")
    return b"string"

您可以检查http://uwsgi-docs.readthedocs.io/en/latest/Python.html#python-3了解有关使用的更多信息uwsgipython3

相关内容