Я пытаюсь настроить Django через UWSGI с помощью Nginx.
У меня есть пропуск UWSGI для работы с этой функцией
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:9001;
}
К сожалению, когда я захожу в / django / admin. Я получаю ошибку
Страница не найдена (404) Метод запроса: GET URL-адрес запроса: http: //69.x.x.x/django/admin Используя URLconf, определенный в Django.urls, Django попробовал эти шаблоны URL в следующем порядке: ^ admin /
Как я могу заставить nginx переписать URL-адрес, чтобы не передавать часть / django?
Должно быть что-то вроде следующего в uwsgi_params
файл:
uwsgi_param QUERY_STRING $query_string;
uwsgi_param REQUEST_METHOD $request_method;
uwsgi_param CONTENT_TYPE $content_type;
uwsgi_param CONTENT_LENGTH $content_length;
uwsgi_param REQUEST_URI $request_uri;
uwsgi_param PATH_INFO $document_uri;
uwsgi_param DOCUMENT_ROOT $document_root;
uwsgi_param SERVER_PROTOCOL $server_protocol;
uwsgi_param REMOTE_ADDR $remote_addr;
uwsgi_param REMOTE_PORT $remote_port;
uwsgi_param SERVER_PORT $server_port;
uwsgi_param SERVER_NAME $server_name;
Это параметры, переданные вашему приложению. Я думаю тебе нужно поменять request_uri
в $ host, чтобы удалить все, что находится за именем хоста.
Вы также можете установить эту переменную внутри конфигурации виртуального сервера, она должна перезаписать ее локально. Сделай это раньше uwsgi_pass 127.0.0.1:9001;
.
АЛЬТЕРНАТИВНЫЙ МЕТОД Также вы можете создать следующее правило перезаписи:
rewrite ^(.*)/(.*)$ $1 last;
и добавьте его в location /
часть, но я не уверен, что это сработает так, как ожидалось.