如何调试mod_wsgi/django/apache/wget超时
我有一个通过django/apache/mod_wsgi运行的web服务,我正试图调试它——运行服务器端需要很长时间,但使用某些参数,它只是超时。我已经尝试在URI上直接执行如何调试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指令,但这似乎没有帮助。使用不同的参数,服务可以正常运行。我应该
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那么它最终是什么呢?