基于Django开发的运维平台也接近尾声了,需要将开发的平台给部署上。网上也参考了很多相关的文章,要么不全要么版本太久,滚过不少坑后总算搞定了,记录下过程。
环境是:
Django1.6.5
Nginx1.6.0
uwsgi1.9.20
安装uwsgi。下载地址 http://projects.unbit.it/downloads/ 随便选一个比较新的。然后下载到服务器,按照常规运行build和install就好了。
1 | $ python setup.py build |
uwsgi安装好后可以用uwsgi –version验证下版本
1 | uwsgi --version 1.9.20 |
nginx、django之前就弄好了就不用折腾了,重要的是相关配置文件的配置。
相关的配置文件uwsgi配置文件我用的是xml格式的,与项目的settings文件相同的目录(其他相关的配置文件也是放在这个目录),下面是配置文件uwsgi.xml
1 | <uwsgi> |
settings文件我是拷贝的开发环境的setting文件,并重命名为nginx_settings。nginx_settings文件做了如下修改:
关闭DEBUG模式、关闭TEMPLATE_DEBUG、新增TEMPLATE_DIRS项、添加ALLOWED_HOSTS、重新指定WSGI_APPLICATION。
1 | #SECURITY WARNING: don't run with debug turned on in production! |
nginx_wsgi文件我也是拷贝的项目自动生成的wsgi,稍微修改了。
1 | import os #将project.settings改成project.nginx_settings |
nginx配置文件设置几个简单的配置项就可以跑起来。因为有时数据的采集时间较长,我把超时时间调长了。
1 | server |
Django管理后台admin的静态文件我将Django安装包中的静态文件夹Django-1.6.5/django/contrib/admin/static/admin
拷贝到项目的static
的目录下就解决了。 重启nginx,再启动uwsgi,Django项目就可以跑起来了。
1 | $ /usr/bin/uwsgi -x /opt/www/project/project/uwsgi.xml --uid 502 & #可以指定用户等 |