Mon simple Django app a bien fonctionné en mode debug (manage.py runserver
), et travaille sous la WSGI+Apache sur ma boîte de dev, mais quand j'ai poussé à l'EC2 j'ai commencé à recevoir intermittente (10-80% du temps) les erreurs d' Bad Request (400)
pour toutes les Url j'essaie de vue (que ce soit dans mon application ou dans l'admin de Django.
Où puis-je trouver les informations de débogage à ce sujet? Rien ne s'affiche en /var/log/apache2/error.log
, même avec des LogLevel=info
. J'ai vérifié les versions, connecté à la Demande de l'environnement (cf. ModWSGI de Débogage Conseils) et ne vois pas de grandes différences.
La seule pensée que j'ai eu est, je suis en utilisant le mod_wsgi de Ubuntu 12.04 (libapache2-mod-wsgi 3.3-4build1) qui a été construit contre Python 2.7.1; j'ai Python 2.7.3. Et Django est de 1,6, ce qui est plus récent que le Ubuntu version Précise. J'hésite à commencer la construction de paquets à partir des sources, car il est difficile à nettoyer et ces paraître mineurs, changements de version...
Je vous remercie pour votre aide.
(Pour référence, voici la config d'Apache et de WSGI apps)
De configuration d'Apache (000-default)
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
WSGIScriptAlias /rz /usr/local/share/rz/rz.wsgi
...
rz.Application 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())