nginx+uwsgi+virtualenv+django搭建django生产运行环境
Posted 运维技术前线
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx+uwsgi+virtualenv+django搭建django生产运行环境相关的知识,希望对你有一定的参考价值。
我们平常用 python manage.py runserver 来运行服务器,来调试代码,但这只适用测试环境中使用。
生产环境中如何运行python web应用?
下面介绍nginx+uwsgi+virtualenv+django的架构搭建生产运行环境
组件介绍:
virtualenv:开发多个应用程序,用的组件版本不一样,会产生版本冲突,virtualenv可以用来为一个应用创建一套“隔离”的Python运行环境
uwsgi的作用:uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议,web框架致力于如何生成html代码,而web服务器用于处理和响应http请求,uwsgi也就是处理动态请求,uwsgi是服务器和服务端应用程序的通信协议,规定了怎么把请求转发给应用程序和返回
django:web框架
nginx:http静态服务器,处理静态文件css,html,img
一、安装python虚拟环境virtualenv
yum install python-pip
pip install —upgrade pip
pip install virtualenv
二、uwsgi
1.安装uwsgi
pip install uwsgi
uwsgi —version # 查看 uwsgi 版本
如果安装失败,可能缺少python头文件和静态文件
yum install python-devel2.配置uwsgi启动参数
[uwsgi] # Django-related settings # Django项目本地端口 socket = 127.0.0.1:9090 # 项目根目录位置,pyops代表django项目 chdir = /scripts/pyops # wsgi.py文件在项目的中的相对位置 wsgi-file = /scripts/pyops/pyops/wsgi.py module =pyops.wsgi # 进程设置,无需变动 # master master = true # maximum number of worker processes # 启动4个uwsgi进程 processes = 4 # ... with appropriate permissions - may be needed # chmod-socket = 664 # clear environment on exit vacuum = true pidfile=/var/run/uwsgi.pid daemonize = /tmp/uwsgi9090.log # 日志文件
3.测试uwsgi
source /scripts/env/pyops/bin/activate uwsgi —http :8088 —chdir /scripts/pyops/ —wsgi-file pyops/wsgi.py curl http://127.0.0.1:8088 可以测试浏览页面启动uwsgi,注意:要激活虚拟环境再启动uwsgi,否则uwsgi报错加载不了python库。如不成功看日志分析/tmp/uwsgi9090.log
4.后台运行启动uwsgi
source /scripts/env/pyops/bin/activate
uwsgi —ini /etc/uwsgi/uwsgi9090.ini
三、nginx安装配置
1.nginx安装
yum install nginx2.配置nginx for uwsgi
server{
listen 80;
server_name test.com;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:9090; # 和uwsgi的设置一样
}
}
注意:此种方法只需配两个参数即可include uwsgi_params,uwsgi_pass,其余配置在uwsgi.ini中配。
3.启动nginx
service nginx start4.访问:
test.com
以上是关于nginx+uwsgi+virtualenv+django搭建django生产运行环境的主要内容,如果未能解决你的问题,请参考以下文章
08 nginx+uWSGI+django+virtualenv+supervisor发布web服务器
CentOS下实现Flask + Virtualenv + uWSGI + Nginx部署
[原创]Flask+uwsgi+virtualenv+nginx部署配置
nginx+uWSGI+django+virtualenv+supervisor发布web服务器