Я пытаюсь настроить Nginx + Gunicorn и когда я перехожу по своему URL, Nginx перенаправляет запрос в мое приложение и обрабатывает его itsels для статического ресурса (static
папка). Ниже моей конфигурации домена Nginx:
server {
listen 80;
server_name asknow.local www.asknow.local;
root /home/ghostman/Projects/asknow/asknow;
location = /favicon.ico { access_log off; log_not_found off; }
location = /static/ {
root /home/ghostman/Projects/asknow/asknow;
}
location = / {
include proxy_params;
proxy_pass http://unix:/home/ghostman/Projects/asknow/asknow/asknow.sock;
}
}
Проблема, которая мне нужна Nginx сам обрабатывает запрос для static
только (www.asknow.local/static
), но он пытается обрабатывать и другие URL-адреса. Итак, когда я иду в www.asknow.local/admin
сейчас Nginx пытается найти ресурс по пути (my_project/admin
).
Журнал Nginx
2017/11/01 04:27:22 [error] 13451#13451: *1 open() "/usr/share/nginx/html/static/img/search.svg" failed (2: No such file or directory), client: 127.0.0.1, server: asknow.local, request: "GET /static/img/search.svg HTTP/1.1", host: "www.asknow.local"
Как это исправить?
Удалить знак равенства (=) из
location = / {
include proxy_params;
proxy_pass http://unix:/home/ghostman/Projects/asknow/asknow /asknow.sock;
}
удалить "=" из "= /"
По сути, вы сопоставили только домашнюю страницу для этого блока местоположения, поэтому в django будет отправлен только запрос с "/". Из-за этого "/ admin" будет не отправляться на прокси / django. Я столкнулся с той же проблемой, что и вы, и вопрос касался только вас. Надеюсь, это поможет вам и последующим людям столкнуться с той же проблемой, что и я :)
Для путешественников во времени из будущего, у которых "django" работает, URL-адрес перенаправляется, но не может отображать страницу; эта страница может вам помочь