我的简单的Django应用程序在调试模式(manage.py runserver
)下运行良好,并且在我的dev box上运行在WSGI+Apache下,但是当我推送到EC2时,我尝试查看的任何URL(无论是在我的应用程序中还是在Django admin中)都开始收到间歇性的Bad Request (400)
错误(10-80%的时间)。
我在哪里可以找到关于这个的调试信息?即使使用LogLevel=info
,/var/log/apache2/error.log
中也不会出现任何内容。我已经检查了版本,记录了请求环境(参见ModWSGI Debugging Tips),看不出有什么大的不同。
我剩下的一个想法是,我使用Ubuntu12.04(libapache2-mod-WSGI3.3-4build1)中的mod_wsgi,它是针对Python2.7.1构建的;我使用的是Python2.7.3。Django是1.6,比Ubuntu精确版本更新。我不太愿意从源代码开始构建包,因为它很难清理,而且这些似乎只是很小的版本更改……
感谢您的帮助。
(作为参考,这里是Apache配置和WSGI应用程序)
Apache配置(000-默认)
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
WSGIScriptAlias /rz /usr/local/share/rz/rz.wsgi
...
rz.WSGI应用程序
import os
import sys
import django.core.handlers.wsgi
import pprint
path = '/usr/local/share/rz'
if path not in sys.path:
sys.path.insert(0, path)
os.environ['DJANGO_SETTINGS_MODULE'] = 'rz.settings'
class LoggingMiddleware:
def __init__(self, application):
self.__application = application
def __call__(self, environ, start_response):
errors = environ['wsgi.errors']
pprint.pprint(('REQUEST', environ), stream=errors)
def _start_response(status, headers, *args):
pprint.pprint(('RESPONSE', status, headers), stream=errors)
return start_response(status, headers, *args)
return self.__application(environ, _start_response)
application = LoggingMiddleware(django.core.handlers.wsgi.WSGIHandler())
https://stackoverflow.com/questions/20321673
复制相似问题