Wie setze ich Unterverzeichnis in nginx mit Django ein

Umwelt:

  • Uwsgi
  • Nginx
  • Django 1.3

Ich benutze die Domain www.example.com mit Django und nginx, und ich möchte auf den Django von www.example.com/abc/ zugreifen, aber ich weiß nicht, wie man das Unterverzeichnis setzt .

Dies ist die nginx conf Datei:

 server { listen 80; server_name www.example.com; error_log /var/log/nginx/xxx.error_log info; root /home/web/abc; # this is the directory of the django program location ~* ^.+\.(jpg|jpeg|png|gif|css|js|ico){ root /home/web/abc; access_log off; expires 1h; } location ~ /abc/ { # I want to bind the django program to the domian's subdirectory include uwsgi_params; uwsgi_pass 127.0.0.1:9000; } } 

Wenn ich die Website www.example.com/abc/ öffne, urls.py das django urls.py nicht überein, es entspricht nur der Seite wie ^index$ .

Wie kann ich den nginx-Standort ändern, um django auf www.example.com/abc ?

One Solution collect form web for “Wie setze ich Unterverzeichnis in nginx mit Django ein”

Nach dem uWSGI auf Nginx docs musst du nur den SCRIPT_NAME an django weitergeben.

 location /abc { include uwsgi_params; uwsgi_pass 127.0.0.1:9000; uwsgi_param SCRIPT_NAME /abc; } 

Django wird immer noch "sehen" /abc , aber es sollte damit umgehen, damit es abgestreift wird, bevor deine URLs abgestimmt sind. Sie wollen, dass dies geschieht, wenn django nicht sehen /abc , würde es falsche URLs für Ihre Website zu generieren und keiner Ihrer Links würde funktionieren.

  • UWSGI AJAX, eine Anforderung lesen
  • Uwsgi wirft IO Fehler verursacht durch uwsgi_response_write_body_do defekte Pfeife
  • Kann ich das uwsgi-Protokoll verwenden, um http anzurufen?
  • ImportError: Kein Modul namens django.core.wsgi für uwsgi
  • Python subprocess.Popen langsam unter uWSGI
  • Keine Ausnahmeprotokollausgabe in excepiton.log-Datei im Pyramidenprojekt mit Plugin pyramid_exclog unter uwsgi
  • Beenden eines uwsgi-Arbeiters programmgesteuert
  • WSGI vs uWSGi mit Nginx
  • Uwsgi scheitert unter pyenv / 2.7.11 mit _io.so: undefined symbol: _PyCodecInfo_GetIncrementalEncoder
  • UWSGI + NGINX 502 Bad Gateway
  • Nginx + uwsgi + django, wie man 404.html und 502.html konfiguriert
  • Python ist die beste Programmiersprache der Welt.