我有一个 Django 站点,我试图通过 uWSGI 为其提供服务。我已经像这样启动了服务器:
uwsgi --emperor .
Ctrl+Z
bg 1
Run Code Online (Sandbox Code Playgroud)
(有两个.ini文件,分别指向网站的测试版和生产版,分别服务于9001和9002)
然后我尝试获取我的网站:
curl http://localhost:9002
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我收到一条消息,说 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)
Run Code Online (Sandbox Code Playgroud)
没有错误记录。
我应该说,这在重新启动之前工作正常,因此 uwsgi.ini 文件应该没问题。
我应该从哪里开始诊断的任何想法?
小智 8
我遇到了一些问题,结果我的 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"
Run Code Online (Sandbox Code Playgroud)
您可以查看http://uwsgi-docs.readthedocs.io/en/latest/Python.html#python-3以获取有关将uwsgi与python3一起使用的更多信息。
| 归档时间: |
|
| 查看次数: |
4944 次 |
| 最近记录: |