2011-05-10 2 views
3

Je viens de passer de django 1.2.4 à 1.3.django - nginx + fastcgi -> Exception non gérée (après la mise à niveau de Django 1.2.4 vers Django 1.3)

J'utilise nginx conjointement avec fastcgi et pour une raison quelconque à chaque fois que j'accéder à une page que je reçois cette erreur:

Unhandled Exception 

An unhandled exception was thrown by the application. 

Toutes les idées que le problème pourrait être?

+0

pouvez-vous ajouter un pastebin à votre error.log, et peut-être fichiers de configuration. – ashwoods

+0

@ashwoods J'ai trouvé quelque chose dans le fichier /var/log/nginx/localhost.error_log: Fichier "/usr/local/lib/python2.6/dist-packages/django/core/handlers/base.py", ligne 51, dans load_middleware raise exceptions.ImproperlyConfigured ('Le module Middleware "% s" ne définit pas de classe "% s"'% (mw_module, mw_classname)) ImproperlyConfigured: Le module de middleware "django.middleware.http" ne définit pas de "SetRemoteAddrFromForwardedFor "class" lors de la lecture de l'en-tête de réponse en amont, client: 192.168.1.1, serveur: mysite.com, requête: "GET/home/HTTP/1.1", en amont: "fastcgi: //127.0.0.1: 1234", hôte: "mysite.com" – avatar

Répondre

1

Pour résoudre ce problème, j'ai ajouté cette classe (qui n'a pratiquement rien fait) dans: /usr/local/lib/python2.6/dist-packages/django/middleware/http.py

class SetRemoteAddrFromForwardedFor(object): 
    """ 
    This middleware has been removed; see the Django 1.1 release notes for 
    details. 

    It previously set REMOTE_ADDR based on HTTP_X_FORWARDED_FOR. However, after 
    investiagtion, it turns out this is impossible to do in a general manner: 
    different proxies treat the X-Forwarded-For header differently. Thus, a 
    built-in middleware can lead to application-level security problems, and so 
    this was removed in Django 1.1 

    """ 
    def __init__(self): 
     import warnings 
     warnings.warn("SetRemoteAddrFromForwardedFor has been removed. " 
         "See the Django 1.1 release notes for details.", 
         category=DeprecationWarning) 
     raise MiddlewareNotUsed() 
2

Vous devez rechercher votre journal d'erreurs fastcgi. Il devrait y avoir plus d'informations détaillées là-dedans.

+0

Je ne suis pas sûr si fastcgi a un journal des erreurs mais j'ai regardé sous /var/log/nginx/error.log et n'ai rien trouvé. – avatar