postgres ocean digitalocean deploy and django nginx ubuntu-11.10 uwsgi

ocean - gunicorn django



Django+uWSGI a través de NGINX en Ubuntu 11.10 (2)

Estoy intentando implementar un proyecto django. Intenté muchos tutoriales, pero no tuve suerte. Uso un nuevo Ubuntu 11.10 limpio. He realizado

apt-get install nginx apt-get install uwsgi service nginx start

/deploy/project1 carpeta /deploy/project1 y coloqué allí manage.py y otros archivos.

Mi actual /deploy/project1/project1/wsgi.py contiene:

import os os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project1.settings") from django.core.wsgi import get_wsgi_application application = get_wsgi_application()

Entonces, ¿podría decirme cómo implementar mi aplicación django para domain.com correctamente?

También instalé Django vía pip y easy_install

¿Qué debería agregar en /etc/nginx/sites-enabled/default ?


No olvide que el paquete uwsgi Debian, Ubuntu y sus derivados no requiere la instalación de su complemento Python - uwsgi-plugin-python , porque uWSGI no necesariamente usa solo Python (hay complementos para Lua, Erlang y otros lenguajes). Sin embargo, Django requiere el complemento Python. Instalarlo:

sudo apt install uwsgi-plugin-python

A diferencia de la instalación de PIP, debe mencionar explícitamente el complemento uwsgi utilizado en la configuración de la aplicación al agregarle una línea plugins = python (si usa Python), así:

[uwsgi] plugins = python uwsgi-socket = /var/sockets/django.sock chmod-socket = 660 chdir = /home/v/django module = project.wsgi

A menos que haga esto, no habrá opciones específicas de Python disponibles. ¡Y el uWSGI de Debian / Ubuntu será silencioso al respecto!


Suponiendo que ha instalado todos los requisitos y está utilizando los paquetes aptitude, entonces no necesita el wsgi.py. Toda la configuración está en el archivo uwsgi ini / xml / yaml. (tome el formato que prefiera).

Aquí hay un ejemplo mínimo para el archivo example.com para nginx (/ etc / nginx / sites-available / examplecom para 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; } }

Crear un enlace simbólico a / etc / nginx / sites-enabled

sudo ln -s /etc/nginx/sites-available/examplecom /etc/nginx/sites-enabled/examplecom

o

sudo /usr/sbin/nxensite examplecom

Ya terminaste con NGINX.

Vaya a /etc/uwsgi/apps-available y cree su archivo 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

Apunte su ini a /etc/uwsgi/apps- habilitado / nombredelproyecto.ini

sudo ln -s /etc/uwsgi/apps-available/projectname.ini /etc/uwsgi/apps-enabled/projectname.ini

Para obtener más información, consulte cualquiera de estos archivos en su sistema:

/etc/uwsgi/apps-available/README /etc/uwsgi/apps-enabled/README /usr/share/doc/uwsgi/README.Debian.gz /etc/default/uwsgi

Estás listo. Ahora puede reiniciar nginx y uwsgi

sudo service nginx restart sudo service uwsgi restart

¡Aclamaciones!