Django Nginx+uwsgi instalación y configuración
En los capítulos anteriores usamospython manage.py runserverpara ejecutar el servidor. Esto solo es adecuado para entornos de prueba.
Para un servicio publicado oficialmente, necesitamos un servidor estable y continuo, como Apache, Nginx, lighttpd, etc. Este artículo tomará Nginx como ejemplo.
También puedes consultar directamente:Python uwsgi instalación y configuración
Instalar paquetes básicos de desarrollo
Los pasos de instalación en CentOS son los siguientes:
yum groupinstall "Development tools" yum install zlib-devel bzip2-devel pcre-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel
CentOS viene con Python 2.4.3, pero podemos instalar Python 2.7.5 adicionalmente:
cd ~ wget http://python.org/ftp/python/2.7.5/Python-2.7.5.tar.bz2 tar xvf Python-2.7.5.tar.bz2 cd Python-2.7.5 ./configure --prefix=/usr/local make && make altinstall
Instalar el gestor de paquetes de Python
El paquete easy_installhttps://pypi.python.org/pypi/distribute
Pasos de instalación:
cd ~ wget https://pypi.python.org/packages/source/d/distribute/distribute-0.6.49.tar.gz tar xf distribute-0.6.49.tar.gz cd distribute-0.6.49 python2.7 setup.py install easy_install --version
El paquete pip:https://pypi.python.org/pypi/pip
La ventaja de instalar pip es que puedes usar pip list, pip uninstall para gestionar paquetes de Python; easy_install no tiene esta función, solo uninstall.
Instalar uwsgi
uwsgi:https://pypi.python.org/pypi/uWSGI
Explicación detallada de los parámetros de uwsgi:http://uwsgi-docs.readthedocs.org/en/latest/Options.html
pip install uwsgi uwsgi --version # 查看 uwsgi 版本
Probar si uwsgi funciona correctamente:
Crea un nuevo archivo test.py, con el siguiente contenido:
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return "Hello World"
Luego ejecuta en la terminal:
uwsgi --http :8001 --wsgi-file test.py
En el navegador ingresa: http://127.0.0.1:8001, mira si hay salida de "Hello World". Si no hay salida, revisa tu proceso de instalación.
Instalar Django
pip install django
Para probar si django funciona correctamente, ejecuta:
django-admin.py startproject demosite cd demosite python2.7 manage.py runserver 0.0.0.0:8002
En el navegador ingresa: http://127.0.0.1:8002, comprueba si django se ejecuta correctamente.
Instalar Nginx
Los comandos de instalación son los siguientes:
cd ~ wget http://nginx.org/download/nginx-1.5.6.tar.gz tar xf nginx-1.5.6.tar.gz cd nginx-1.5.6 ./configure --prefix=/usr/local/nginx-1.5.6 \ --with-http_stub_status_module \ --with-http_gzip_static_module make && make install
Puedes leerNginx instalación y configuraciónpara obtener más información.
Configuración de uwsgi
uwsgi admite múltiples métodos de configuración como ini, xml, etc. Este artículo usa ini como ejemplo. Crea uwsgi9090.ini en el directorio /etc/ y agrega la siguiente configuración:
[uwsgi] socket = 127.0.0.1:9090 master = true //主进程 vhost = true //多站模式 no-site = true //多站模式时不设置入口模块和文件 workers = 2 //子进程数 reload-mercy = 10 vacuum = true //退出、重启时清理文件 max-requests = 1000 limit-as = 512 buffer-size = 30000 pidfile = /var/run/uwsgi9090.pid //pid文件,用于下面的脚本启动、停止该进程 daemonize = /website/uwsgi9090.log
Configuración de Nginx
Encuentra el directorio de instalación de nginx (por ejemplo: /usr/local/nginx/), abre el archivo conf/nginx.conf y modifica la configuración de server:
server {
listen 80;
server_name localhost;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:9090; //必须和uwsgi中的设置一致
uwsgi_param UWSGI_SCRIPT demosite.wsgi; //入口文件,即wsgi.py相对于项目根目录的位置,“.”相当于一层目录
uwsgi_param UWSGI_CHDIR /demosite; //项目根目录
index index.html index.htm;
client_max_body_size 35m;
}
}
Puedes leerNginx instalación y configuraciónpara obtener más información.
Después de completar la configuración, ejecuta en la terminal:
uwsgi --ini /etc/uwsgi9090.ini & /usr/local/nginx/sbin/nginx
En el navegador ingresa: http://127.0.0.1, podrás ver el "It work" de django. Otras extensiones