Как установить подкаталог в nginx с Django

Окружающая среда:

Я использую домен www.example.com с Django и nginx, и я хочу получить доступ к Django по www.example.com/abc/ , но я не знаю, как установить этот подкаталог .

Это файл конфига nginx:

 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; } } 

Когда я открываю сайт www.example.com/abc/ , django urls.py не соответствует, он соответствует только сайту, например ^index$ .

Как изменить положение nginx для установки django на www.example.com/abc ?

One Solution collect form web for “Как установить подкаталог в nginx с Django”

Согласно uWSGI на документах Nginx , вам просто нужно передать SCRIPT_NAME в django.

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

Django все равно «увидит» /abc , но он должен справиться с этим, чтобы он удалялся до того, как ваши URL-адреса совпали. Вы хотите, чтобы это произошло, если django не увидел /abc , это создало бы неправильные URL-адреса для вашего сайта, и ни одна из ваших ссылок не будет работать.

  • Легкая регистрация / отладка приложений с помощью nginx, uwsgi, flask?
  • Неверная транзакция, сохраняющаяся во всех запросах
  • Ошибка: «элемент последовательности обновления словаря № 0 имеет длину 1; 2 требуется "на Django 1.4
  • Развертывание колбы на cherokee и uwsgi
  • Проблемы с ZeroMQ + Django и uwsgi
  • Неблокирующий параллельный сервер wsgi
  • Таймаут запроса uWSGI в Python
  • nginx + uwsgi + колба - отключение пользовательских страниц ошибок
  • Как отлаживать приложение python под uWSGI?
  • Конфигурация nginx + uwsgi + python3 не работает
  • uwsgi выдает ошибку ввода-вывода, вызванную uwsgi_response_write_body_do сломанной трубой
  • Python - лучший язык программирования в мире.