Как добавить новое приложение django в развернутый проект django (используя nginx, gunicorn)? - PullRequest
0 голосов
/ 17 ноября 2018

Во время локального запуска проекта django я могу получить доступ к своему домашнему каталогу, каталогу admin1, app1, app2 (т.е. localhost:portnum , localhost:portnum/admin , localhost:portnum/app1 , localhost:portnum/app2)

Проблема начинается, когда я развернул приложение на сервере (я использовал nginx иgunicorn для развертывания django с помощью этого руководства )

Проблема: - Я не могу получить доступ к example.com/admin, example.com/app1, example.com/app2.В любом случае я могу получить доступ к своему домашнему example.com.

Когда я пытаюсь получить доступ к example.com/app1/, на странице выдается ошибка 403, запрещенная

2018/11/17 18:00:55 [error] 28459#28459: *8 directory index of "/home/ubuntu/project/app/" is forbidden, client: 172.68.146.88, server: example.com, request: "GET /events/ HTTP/1.1", host: "www.example.com"
2018/11/17 18:00:58 [error] 28459#28459: *13 open() "/usr/share/nginx/html/app" failed (2: No such file or directory), client: 172.68.146.10, server: example.com, request: "GET /events HTTP/1.1", host: "www.example.com"

Некоторыерешения, которым я пытался следовать перед этим вопросом: -

server {       
    listen 80;
    listen     443;

    ssl        on;
    ssl_certificate         /home/ubuntu/certs/cert.pem;
    ssl_certificate_key     /home/ubuntu/certs/cert.key;    
    server_name example.com;

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

    location = /static/ {
        root /home/ubuntu/example_project/app1;    
    }

    location = / {
        include proxy_params;
        proxy_pass http://unix:/home/ubuntu/example_project/exampl_project.sock;
    }
}

Спасибо за попытку решить мою проблему.

1 Ответ

0 голосов
/ 19 ноября 2018

Когда вы используете = в директиве местоположения, она применяется только для этого точного пути.Вместо этого вы должны удалить их для обоих ваших местоположений и позволить nginx совпадать для всех префиксов.

 location /static/ {
   root /home/ubuntu/example_project/app1;    
 }

 location / {
   include proxy_params;
   proxy_pass http://unix:/home/ubuntu/example_project/exampl_project.sock;
 }
...