LINUX.ORG.RU

nginx-gunicorn-django не возвращают static

 ,


0

2

Добрый день! Который час бьюсь с проблемой, варианты решения иссякли. Есть конфиг nginx

upstream hello_app_server {
  server unix:/webapps/app/run/gunicorn.sock fail_timeout=0;
}

server {

    listen   8001;
    server_name blabla.com;

    client_max_body_size 4G;

    access_log /webapps/app/logs/nginx-access.log;
    error_log /webapps/app/logs/nginx-error.log;
 
    location /static/ {
        alias   /webapps/app/prototype/staticfiles/;
    }
    location /media/ {
        alias   /webapps/app/prototype/media/;
    }


    location / {

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

     
        if (!-f $request_filename) {
            proxy_pass http://hello_app_server;
            break;
        }
    }

}

И settings.py приложения

STATIC_ROOT = '/webapps/app/prototype/staticfiles/'
STATIC_URL = '/static/'

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)
Collectstatic сделан,
$ ls /webapps/app/prototype/staticfiles/
admin  css  djcelery  js  rest_framework
Любые реквесты на blabla.com:8001/static/ возвращают 404. В чем может быть дело?

Немного не в тему, а зачем тебе этот if? Его вроде не рекомендуют использовать. Может try_files лучше.

И gunicorn это же uwsgi сервер, почему не сделать как-то

server {
    listen                80;
    server_name           localhost;
    charset               utf-8;
    client_max_body_size  75M;

    location / { try_files $uri @mysite; }
    location @mysite {
        include uwsgi_params;
        include /etc/nginx/mime.types;
        uwsgi_pass unix:/var/www/django-uwsgi-nginx/conf/uwsgi.sock;
    }
    location /static {
        autoindex on;
        alias /var/www/django-uwsgi-nginx/djangosite/static;
    }

Ну и права у nginx есть в том каталоге читать?

pawnhearts ★★★★★ ()
Последнее исправление: pawnhearts (всего исправлений: 1)
Ответ на: комментарий от pawnhearts

Немного не в тему, а зачем тебе этот if?

Можно и без него, да.

Ну и права у nginx есть в том каталоге читать? Грешил на это, сделал

sudo chmod -R 777 /webapps/app/
- безрезультатно.

helium ()
Ответ на: комментарий от helium

Странно как-то.

Попробуй root задать внутри директивы server и autoindex on; внутри static чтобы можно было список файлов видеть там.

А в логах что?

pawnhearts ★★★★★ ()
Ответ на: комментарий от pawnhearts

Задал autoindex on; для /static/, дает 404.

В access_log и error_log пусто.

helium ()
Ответ на: комментарий от Goury

А что в /webapps/app/prototype/staticfiles/ лежит?

admin css djcelery js rest_framework

helium ()
Ответ на: комментарий от pawnhearts

Чтобы после коллектстатика все лежало в другом каталоге.

helium ()

Ребята, завелось, черт его знает почему.

helium ()
Ответ на: комментарий от Goury

Разница между root и алиас, что..

Эти две штуки равнозначны, короче:

    location /media/ {
        alias   /webapps/app/prototype/media/;
    }

    location /media/ {
        root   /webapps/app/prototype/;
    }
pawnhearts ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.