如何调试mod_wsgi/django/apache/wget超时

如何调试mod_wsgi/django/apache/wget超时,django,apache,mod-wsgi,wget,Django,Apache,Mod Wsgi,Wget,我有一个通过django/apache/mod_wsgi运行的web服务,我正试图调试它——运行服务器端需要很长时间,但使用某些参数,它只是超时。我已经尝试在URI上直接执行wget,并使用urlib2。我从wget中得到以下错误: Read error (Connection timed out) in headers 同时,urllib2完全不返回任何内容——它似乎在默默地出错。我已经尝试在apache配置中增加Timeout指令,但这似乎没有帮助。使用不同的参数,服务可以正常运行。我应该

我有一个通过django/apache/mod_wsgi运行的web服务,我正试图调试它——运行服务器端需要很长时间,但使用某些参数,它只是超时。我已经尝试在URI上直接执行
wget
,并使用
urlib2
。我从
wget
中得到以下错误:

Read error (Connection timed out) in headers

同时,
urllib2
完全不返回任何内容——它似乎在默默地出错。我已经尝试在apache配置中增加
Timeout
指令,但这似乎没有帮助。使用不同的参数,服务可以正常运行。我应该如何调试它?如果不是apache,超时从何而来?

问题可能出在您的服务代码中。在尝试调试apache之前,确保服务代码完成执行并返回apache

我建议您通过添加输出语句来跟踪服务代码。确保在代码返回mod_wsgi(mod_wsgi调用的函数的最后一行)之前添加一个ouput语句。您可能会看到代码挂在特定位置。也就是说,代码中该点之前的所有调试语句都将出现,该点之后的任何输出语句都不会出现

如果不想添加调试语句,请尝试使用调试器单步执行代码


另一个选项是使用django开发服务器,查看在没有apache的情况下运行时是否发生超时。然而,由于开发服务器是单线程的,如果您处理的问题是与并发相关的bug,那么代码就不会挂起

问题可能出在您的服务代码中。在尝试调试apache之前,确保服务代码完成执行并返回apache

我建议您通过添加输出语句来跟踪服务代码。确保在代码返回mod_wsgi(mod_wsgi调用的函数的最后一行)之前添加一个ouput语句。您可能会看到代码挂在特定位置。也就是说,代码中该点之前的所有调试语句都将出现,该点之后的任何输出语句都不会出现

如果不想添加调试语句,请尝试使用调试器单步执行代码


另一个选项是使用django开发服务器,查看在没有apache的情况下运行时是否发生超时。然而,由于开发服务器是单线程的,如果您处理的问题是与并发相关的bug,那么代码就不会挂起

@user560833那么它最终是什么呢?@user560833那么它最终是什么呢?