nginx из html вместо gunicorn - PullRequest
0 голосов
/ 05 июля 2019

У меня есть приложение nginx / gunicorn / django, которое я настроил следующим образом

https://medium.com/@_christopher/deploying-my-django-app-to-a-real-server-part-ii-f0c277c338f4

Это работает, когда я захожу на основной IP из браузера (я получил Django, попробовал эти шаблоны URL, в следующем порядке: admin / ...), но когда я захожу в / admin, я получил 404. Журналы Nginx выглядят как следующим образом:

2019/07/05 00:30:28 [error] 13600#13600: *1 open() "/usr/share/nginx/html/admin" failed (2: No such file or directory), client: 186.190.207.228, server: 127.0.0.1, request: "GET /admin HTTP/1.1", host: "128.199.62.118"

Так что он пытается обслуживать файлы из html / вместо того, чтобы обслуживать gunicorn, почему?

Конфигурация Nginx:

server {
    listen 80;    
    server_name 127.0.0.1;
    location = /favicon.ico {access_log off;log_not_found off;} 

    location = /static/ {
        root /home/juan/site;    
    }
    location = /media/ {
        root /home/juan/site;
    }

    location = / {
        include proxy_params;
        proxy_pass http://unix:/home/juan/site/site.sock;
    }
}

1 Ответ

1 голос
/ 05 июля 2019

Удалите = из всех директив Location, кроме первой.Это означает точное совпадение, а не совпадение префикса, которое вы хотите.

location = /favicon.ico {access_log off;log_not_found off;} 

location /static/ {
    root /home/juan/site;    
}
location /media/ {
    root /home/juan/site;
}

location / {
    include proxy_params;
    proxy_pass http://unix:/home/juan/site/site.sock;
}
...