Поскольку префикс установлен в Nginx, веб-сервер, на котором размещено приложение Django, не может узнать префикс URL.Как сказал Орзел, если вы использовали apache + mod_wsgi даже nginx + gunicorn / uwsgi (с некоторой дополнительной конфигурацией), вы можете использовать значение WSGIScriptAlias, которое автоматически читается Django.
Когда мне нужно использоватьПрефикс URL, я обычно помещаю его сам в свой корневой urls.py, где у меня есть только одна строка, с префиксом префикса и включающая другой urls.py
(r'^/myapp/', include('myapp.urls')),
Но я предполагаю, что это то же самое узкое месточем установка префикса в settings.py, у вас есть избыточная конфигурация в nginx и Django.
Вам нужно сделать что-то на сервере, на котором размещено ваше приложение Django по адресу: 12345.Вы можете установить там префикс и передать его Django, используя WSGIScriptAlias или его эквивалент за пределами mod_wsgi.Я не могу дать больше информации, так как не знаю, как работает ваше приложение Django.Также, возможно, вам следует рассмотреть возможность запуска приложения Django непосредственно из Django, используя uWSGI или gunicorn.
Чтобы передать префикс Django с веб-сервера, вы можете использовать это:
proxy_set_header SCRIPT_NAME /myapp;
Подробнееинформация здесь