Джанго + на uwsgi через nginx на Ubuntu 11.10
Я пытаюсь развернуть проект django. Я перепробовал много уроков, но ничего не вышло. Я использую новый чистый Ubuntu 11.10. Я исполнил
apt-get install nginx
apt-get install uwsgi
service nginx start
Я создал папку /deploy/project1
и поставить там manage.py
и другие файлы.
мой /deploy/project1/project1/wsgi.py
содержит:
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project1.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
итак, не могли бы вы рассказать мне, как развернуть мое приложение django для domain.com
правильно?
Я также установил Django через pip и easy_install
что я должен добавить в /etc/nginx/sites-enabled/default
.
2 ответов
предполагая, что вы установили все требования и используете пакеты aptitude, вам не нужны wsgi.py - ... Вся конфигурация находится в файле uwsgi ini/xml/yaml. (возьмите формат, который вы предпочитаете).
вот минимальный пример для example.com
файл для nginx (/etc/nginx/sites-available / examplecom для ubuntu 11.10)
server {
listen 80;
server_name example.com;
access_log /var/log/nginx/projectname.log;
location /media {
alias /vagrant/test/projectname/media/;
}
location /static {
alias /vagrant/test/projectname/static/;
}
location / {
uwsgi_pass unix:///run/uwsgi/projectname/socket;
include uwsgi_params;
}
}
создайте символическую ссылку на /etc/nginx / sites-enabled
sudo ln -s /etc/nginx/sites-available/examplecom /etc/nginx/sites-enabled/examplecom
или
sudo /usr/sbin/nxensite examplecom
вы покончено с NGINX.
на /etc/uwsgi/apps-available
и создайте свой ini-файл
sudo vim /etc/uwsgi/apps-available/projectname.ini
[uwsgi]
virtualenv=/home/vagrant/.virtualenvs/projectenv
thread=3
master=1
env = DJANGO_SETTINGS_MODULE=projectname.settings
module = django.core.handlers.wsgi:WSGIHandler()
chdir = /path/to/my/django/project
socket = /run/uwsgi/projectname/socket
logto = /var/log/uwsgi/projectname.log
укажите свой ini в /etc/uwsgi/apps-enabled / projectname.ini
sudo ln -s /etc/uwsgi/apps-available/projectname.ini /etc/uwsgi/apps-enabled/projectname.ini
для получения дополнительной информации см. Любой из этих файлов в вашей системе:
/etc/uwsgi/apps-available/README
/etc/uwsgi/apps-enabled/README
/usr/share/doc/uwsgi/README.Debian.gz
/etc/default/uwsgi
вы сделали. Теперь вы можете перезапустить nginx & uwsgi
sudo service nginx restart
sudo service uwsgi restart
Ура!
Не забывайте, что Debian, Ubuntu и его производные"uwsgi
пакет не требует установки плагинов на Python - uwsgi-plugin-python
, потому что uWSGI не обязательно использует только Python (есть плагины для Lua, Erlang и других языков). Однако для Django требуется плагин Python. Установить его:
sudo apt install uwsgi-plugin-python
В отличие от установки PIP, вы должны явно упомянуть плагин uwsgi, используемый в конфигурации приложения, добавив plugins = python
строка к нему (если вы используете Python), например это:
[uwsgi]
plugins = python
uwsgi-socket = /var/sockets/django.sock
chmod-socket = 660
chdir = /home/v/django
module = project.wsgi
если вы не сделаете этого, не будет никаких параметров, специфичных для Python. И uwsgi Debian/Ubuntu будет просто молчать об этом!