我在Windows上安装了Apache,(是的,不是一个好主意,但不是我的错)。我打开一个弹出窗口,其中包含大约32张图像,除3个图像链接外,其他所有图像都可以使用。这些图像来自TIF文件,因此必须进行转换,所以它通过我的Django应用程序运行,以完成所有这些工作。当重试工作时,这3个网站失败了。从我的DJango应用程序中我的500来自哪里?
在apache日志中,我获得了29 200秒,接着是3 500秒,但未能加载的实际图像随机散布在29张良好的图像中。当我看日志,尾-f,500到599沿多秒来200到299后,但加时戳在他们面前,就像这样:
192.168.20.45 - - [08/Mar/2012:01:24:28 -0600] "GET /viewer/... 200 44277
192.168.20.45 - - [08/Mar/2012:01:24:28 -0600] "GET /viewer/... 200 52283
192.168.20.45 - - [08/Mar/2012:01:24:28 -0600] "GET /viewer/... 200 44991
192.168.20.45 - - [08/Mar/2012:01:24:29 -0600] "GET /viewer/... 200 33077
192.168.20.45 - - [08/Mar/2012:01:24:22 -0600] "GET /viewer/... 500 16
192.168.20.45 - - [08/Mar/2012:01:24:22 -0600] "GET /viewer/... 500 16
192.168.20.45 - - [08/Mar/2012:01:24:22 -0600] "GET /viewer/... 500 16
DEBUG = False,并且管理员都设置,所以我应该得到一个电子邮件在Django中每发生500次,我都测试了电子邮件,并按预期工作。我要通过的代码具有错误条件的日志记录,并且这些都不会触发。
这几乎就像Apache或Mod_wsgi知道这些连接进来,但从来没有将它们传递给Django代码,它们最终只会从看起来是超时的结果中死去。 Chrome的DevTools结束了我展示:
**Response Headers**
Connection:close
Content-Type:text/html; charset=utf-8
Date:Thu, 08 Mar 2012 07:24:22 GMT
Server:Apache/2.2.21 (Win32) mod_wsgi/3.3 Python/2.7.2
Set-Cookie:sessionid=d4616w0f850u1eb33q7a6fzf37f840b5; Path=/
Transfer-Encoding:chunked
Vary:Cookie
我在窗户和Apache说,这对启动:
[Thu Mar 08 01:38:09 2012] [warn] mod_wsgi: Compiled for Python/2.7.
[Thu Mar 08 01:38:09 2012] [warn] mod_wsgi: Runtime using Python/2.7.2.
[Thu Mar 08 01:38:09 2012] [notice] Apache/2.2.21 (Win32) mod_wsgi/3.3 Python/2.7.2 configured -- resuming normal operations
[Thu Mar 08 01:38:09 2012] [notice] Server built: Sep 9 2011 10:26:10
[Thu Mar 08 01:38:09 2012] [notice] Parent: Created child process 3260
[Thu Mar 08 01:38:09 2012] [warn] mod_wsgi: Compiled for Python/2.7.
[Thu Mar 08 01:38:09 2012] [warn] mod_wsgi: Runtime using Python/2.7.2.
[Thu Mar 08 01:38:09 2012] [notice] Child 3260: Child process is running
[Thu Mar 08 01:38:09 2012] [notice] Child 3260: Acquired the start mutex.
[Thu Mar 08 01:38:09 2012] [notice] Child 3260: Starting 64 worker threads.
[Thu Mar 08 01:38:09 2012] [notice] Child 3260: Starting thread to listen on port 80.
有小于64名的请求,所以应该留下来处理它们的线程。
有关正在发生的任何想法?或如何弄清楚?编辑---- 没有回溯,就是这个问题。根本没有迹象表明Python曾经看到过这个请求。
是的,你不应该使用python来提供静态文件,但你不能从一个多图像TIFF放入一个单一图像TIFF到你必须从多图像文件中拉出来,放在一个格式浏览器可以显示,并且您不希望将1亿个以上的TIFF图像转换为单个图像PNG或JPEG。而这些都不是可以被普通大众观看,但仅限于自己的“主人”
加载这第二台机器,问题不会发生在图像.....
什么网址可在Apache日志500错误被列? – 2012-03-08 09:10:48
你不应该通过django来提供静态文件。你应该总是使用静态服务。有关信息,请参阅此文件https://docs.djangoproject.com/en/dev/howto/static-files/ – 2012-03-08 09:16:43
追溯哪里? – 2012-03-08 09:43:41