2017-06-04 4 views
1

J'ai une adresse disons example.com et l'ai ajoutée à la liste allowed_hosts. Mais quand j'accède au site je reçois ALLOWED_HOSTS ['127.0.0.1', '::1', '178.XX.XX.XXX', 'xx80::xx81:xxx:xx3x:x12x%eth0']les modifications allowed_host ne sont pas efficaces

dans la page d'erreur de débogage, tandis que le fichier settings.py réel lit ['178.XX.XX.XXX','example.com']. J'ai pensé que les modifications de settings.py ne sont pas enregistrées car je peux supprimer 178.XX.XX.XXX de la liste et toujours accéder au site (après avoir effacé le cache du navigateur) J'ai redémarré nginx, gunicorn et tout le serveur en vain. Le tout est mis en place sur ubuntu 16.04 en exécutant django 1.8 et en utilisant nginx et gunicorn. Des idées où cette substitution de allowed_hosts pourrait provenir?

+0

Peut-être essayer de supprimer tous les appels * .pyc dans l'arborescence du projet? – FlipperPA

+0

En plus de supprimer le fichier * .pyc, vérifiez que le chemin du gunicorn est correct et que vous pointez vers la bonne application. –

Répondre

2

Ok c'est embarassant mais l'installation One-cick pour django sur 16.04 de Digital Ocean ajoute une ligne à la fin de settings.pyALLOWED_HOSTS est redéfini.

# Find out what the IP addresses are at run time 
# This is necessary because otherwise Gunicorn will reject the connections 
def ip_addresses(): 
    ip_list = [] 
    for interface in netifaces.interfaces(): 
     addrs = netifaces.ifaddresses(interface) 
     for x in (netifaces.AF_INET, netifaces.AF_INET6): 
      if x in addrs: 
       ip_list.append(addrs[x][0]['addr']) 
    return ip_list 

# Discover our IP address 
ALLOWED_HOSTS = ip_addresses() 
ALLOWED_HOSTS.append('.example.com') #I added this line 

L'ajout d'un ajout à la ligne résout donc le problème.