跳至内容
响水凹
欢迎来到 Guang-Wen Duan (Dennis Duan) 的个人 Wiki
用户工具
登录
站点工具
搜索
工具
显示页面
过去修订
反向链接
最近更改
媒体管理器
网站地图
登录
>
最近更改
媒体管理器
网站地图
您的足迹:
computer:net:django
本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。
====== Django+uWSGI+Nginx的安装和配置 ====== [[https://www.djangoproject.com/|Django]]是一个流行的Python框架,[[http://nginx.org/|Nginx]]是一个高性能的HTTP和反向代理服务器。本文讲述在[[http://www.centos.org/|CentOS]] 6下Django的安装,并通过[[http://projects.unbit.it/uwsgi/|uWSGI]]与Nginx集成的简单配置方法。 ===== 软件安装 ===== ==== 安装Django ==== 安装Django及其他Python软件包有很多方法,这里统一使用[[https://pypi.python.org/pypi/pip|pip]]来安装。不建议多种方法混合使用。 首先安装pip,需要启用[[https://fedoraproject.org/wiki/EPEL|EPEL]]源: <code bash> rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm yum update </code> 安装pip: <code bash> yum install python-pip </code> <note> 较早版本的pip在CentOS下的命令为python-pip,新版本增加了pip命令,相应的,python-pip改成了指向pip的符号链接。 </note> 现在可以通过pip安装Django了: <code bash> python-pip install django </code> 更多安装细节可参考官方说明:[[https://docs.djangoproject.com/en/1.5/intro/install/|Quick install guide]]。 ==== 安装Nginx ==== 接下来安装Nginx服务器,安装方法可参考[[http://nginx.org/en/linux_packages.html|Installation on Linux]]的CentOS部分。 下载[[http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm|nginx-release-centos-6-0.el6.ngx.noarch.rpm]]并安装它,或者手工新建文件/etc/yum.repos.d/nginx.repo: <code> [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/6/$basearch/ gpgcheck=0 enabled=1 </code> 安装: <code> yum install nginx </code> ==== 安装uWSGI ==== 安装uWSGI需要用到系统开发工具包,如果尚未安装,则执行: <code bash> yum groupinstall 'Development tools' yum install python-devel </code> 通过pip安装uWSGI: <code> python-pip install uwsgi </code> 更多安装细节可参考:[[http://uwsgi-docs.readthedocs.org/en/latest/Install.html|Installing uWSGI]]。 ===== 集成配置 ===== ==== Django项目 ==== 我们参照Django的[[https://docs.djangoproject.com/en/1.5/intro/tutorial01/|Tutorial]]新建个应用项目。 首先创建一个普通用户django: <code bash> useradd django </code> 以用户django登录,执行: <code bash> django-admin.py startproject mysite </code> 手工运行: <code bash> cd mysite/ python manage.py runserver </code> ==== 配置uWSGI ==== 开始之前,建议先看看官方这篇快速文档:[[http://uwsgi-docs.readthedocs.org/en/latest/WSGIquickstart.html|Quickstart for python/WSGI applications]]。 配置刚才建立的Django应用,新建/etc/uwsgi.ini(这里采用INI格式的配置文件): <code> [uwsgi] socket = 127.0.0.1:3031 chdir = /home/django/mysite/ wsgi-file = mysite/wsgi.py master = ture processes = 4 threads = 2 #stats = 127.0.0.1:9191 uid = django gid = django die-on-term = true pidfile = /var/run/uwsgi.pid logto = /var/log/uwsgi.log </code> 更多参数说明可参见:[[http://uwsgi-docs.readthedocs.org/en/latest/Options.html|Configuration Options]]。 运行: <code bash> uwsgi /etc/uwsgi.ini </code> 测试时可以手工启动,实际运行时要配置成开机自启动。 CentOS 6的init系统是[[http://upstart.ubuntu.com/|Upstart]],新建/etc/init/uwsgi.conf: <code> # simple uWSGI script description "uwsgi tiny instance" start on runlevel [2345] stop on runlevel [06] exec /usr/bin/uwsgi /etc/uwsgi.ini </code> 启动服务: <code bash> start uwsgi </code> 停止服务: <code bash> stop uwsgi </code> 更多Upstart的信息可参考:[[http://uwsgi-docs.readthedocs.org/en/latest/Upstart.html|Running uWSGI via Upstart]]。 ==== 配置Nginx ==== Nginx的配置文件在/etc/nginx目录下。当前这个样例只运行一个Django应用,故直接编辑/etc/nginx/conf.d/default.conf,添加: <code> location / { include uwsgi_params; uwsgi_pass 127.0.0.1:3031; } </code> 对于静态资源,直接由Nginx来负责,不用通过Django: <code> location /static { alias /usr/lib/python2.6/site-packages/django/contrib/admin/static; } </code> 更多信息可参考:[[http://uwsgi-docs.readthedocs.org/en/latest/Nginx.html|Nginx support]]。 配置完毕。 使用浏览器直接访问服务器的80端口,无误的话,将显示Django的画面。 {{tag>Django Nginx}}
computer/net/django.txt
· 最后更改: 2014/11/01 02:02 由
127.0.0.1
页面工具
显示页面
过去修订
反向链接
回到顶部