2015-05-11 2 views
2

Я настроил gunicorn на своем сервере, чтобы запустить мой django-backend. Это хорошо работает, но выглядит очень плохо. Я могу видеть мои бэкэнды, но это только в HTML. Нет css и т. Д., Как раньше. Так что я собираюсь:Конфигурация django с nginx

mysite.com:9000 (я выбрал этот порт для моего gunicorn-конфигурации)

Я прочитал я должен был настроить мое Джанго с Nginx тоже. Так что я установил его и сказал мой Джанго проект следующим образом (в settings.py):

STATIC_ROOT = os.path.join(BASE_DIR, "static/") 

После этого я иду в свою папку на сервере, где проект строится. Я активирую свой venv и выполняя следующую команду.

python manage.py collectstatic 

Он создает статическую папку в моем проекте со всеми необходимыми файлами.

Проблема заключается в конфигурации с nginx. Мне это действительно нужно на mysite: 9000 Не на mysite: 900/статический или что-то в этом роде. Я не знаю, как его настроить. Это то, что я пробовал.

cd /etc/nginx/sites-available/ 
sudo nano test 


server { 
     server_name mysite.com; 

    access_log off; 

    location /static/ { 
     alias /path/to/myproject/static/; 
    } 

    location/{ 
      proxy_pass http://127.0.0.1:9000; 
      proxy_set_header X-Forwarded-Host $server_name; 
      proxy_set_header X-Real-IP $remote_addr; 
      add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"'; 
    } 
} 

Чем я пошел в

cd /etc/nginx/sites-enabled 

и сделал следующую команду и перезапуске Nginx.

sudo ln -s ../sites-available/myproject 

ответ

-1

Ваша конфигурация с collectstatic будет обслуживать статические файлы через Джанго, следовательно, и на HTTP: //: 9000/статический.

Самый эффективный способ обслуживать файлы на другом порту напрямую через nginx. Вы можете иметь несколько директив server в nginx.conf, каждый со своей собственной директивой listen.

Смотрите ответ в https://serverfault.com/questions/242679/how-to-run-multiple-nginx-instances-on-different-port

1

Вы, кажется, идет к неправильному URL. Вы настроили gunicorn для работы на порте 9000, но nginx работает как обратный прокси-сервер на стандартном веб-порту, что является его целым рядом. Вы просто должны пойти на mysite.com; nginx будет проксировать приложение Django до: 9000 и напрямую обслуживать активы.

+0

Но в данный момент на mysite.com есть что-то еще. Невозможно получить статические файлы на mysite.com:9000? Это просто для лучшего интерфейса моего бэкэнда. – lvthillo

+0

Затем вы должны настроить nginx на другом порту или другом виртуальном хосте. –

+0

Хорошо, но когда вы не настраиваете nginx, это нормально, что стрельба показана в чистом html? (функциональность его невелика) – lvthillo

Смежные вопросы