2012-08-04 3 views
0

Je voudrais exposer une application django en test bêta à mon client. Notre certificat SSL fonctionne uniquement pour http://www.domain.com/ (pas de sous-domaine). Donc, je voudrais carte:django url via proxy_pass

http: // 192.168.0.9:8080/ à http://www.domain.com/beta/

je dois ajouter à mon nginx.conf

location /beta { 
      rewrite   ^([^.]*[^/])$ $1/  permanent; 
    } 

    location /beta/{ 
      proxy_set_header  X-Url-Prefix   http://www.domain.com/beta/; 
      proxy_set_header  X-Real-IP    $remote_addr; 
      proxy_set_header  Host     $host; 
      proxy_pass    http:// 192.168.0.9:8080/; 
    } 

La première page bien paraître, mais tous les liens ne fonctionne pas. Les liens sont créés par {% url ...%} templatetags.

PS: espace entre http: // et IP -> stackoverflow refuser de sauver ma question pas accessible comme

Répondre

1

Django doit être conscient qu'il est pas servi à la racine du domaine, par défaut étant que tout est relatif à /. Il y a plusieurs façons de gérer cela, mais le plus simple est probablement d'ajouter "www.domain.com/beta" au framework des sites (vous devez l'ajouter dans INSTALLED_APPS) sous votre SITE_ID par défaut. Exposez ses modèles dans l'interface d'administration et définissez-le avec le suffixe approprié.

Examinez django sites framework pour ajouter votre racine d'URL au nom de domaine complet.