您的位置:首页 > 运维架构 > Nginx

使用nginx+uwsgi部署django应用

2015-04-21 17:07 961 查看
使用过django来开发网页的人都知道,django的manage.py自带了一个runserver命令,这个命令使得本地调试非常方便,然而在真正上线网站时对并发能力的支持非常重要,本教程教你用nginx+uwsgi来将django应用部署在服务器上。

教程:

1.首先保证django项目在本地调试完毕。(这是废话)

2.在服务器安装好nginx和uwsgi两个软件。(yum或者apt-get)

3.找到nginx.conf文件(位置在/usr/local/nginx/conf/nginx.conf),可以把这个nginx.conf文件作为模版,拷贝为另一个你自己的配置文件zcy.conf

4.修改zcy.conf,如果权限不够在第一行加上

user root your_username; #用户名是在服务器中的用户名

主要修改zcy.conf的server段如下:

server {
listen 8183;#本地运行端口
server_name 10.10.255.115;#本地运行ip

location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8077; #(本地环回端口)
}

location /static {
root /home/your_username/.../mysite; #到mysite文件夹的绝对路径
#用nginx来管理静态文件,否则会出现css样式丢失问题
}

}


5.下一步在django项目文件夹mysite下创建两个文件:

django_wsgi.py文件内容如下:

#coding=utf-8
import os
import sys
import django.core.handlers.wsgi
#if not os.path.dirname(__file__) in sys.path[:1]:
#sys.path.insert(0, os.path.dirname(__file__))
reload(sys)
sys.setdefaultencoding('utf8')

os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

#application = django.core.handlers.wsgi.WSGIHandler()
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()


注意:上面注释掉的两行是一些教程中给出的,版本比较老,函数神马的都用不了了~

conf.xml配置文件内容如下:

<uwsgi>
<socket>:8077</socket>  #本地环回端口,与zcy.conf文件中的相对应
<chdir>/home/your_username/.../mysite</chdir>  #与zcy.conf中的路径一致,到mysite的绝对路径
<module>django_wsgi</module>  #指定与本文件同级的django_wsgi.py文件
<processes>4</processes>  #进程数设置为4
<daemonize>uwsgi.log</daemonize>  #日志文件
</uwsgi>
基本设置为以上,更多设置可以查看uwsgi配置文件的参数说明。

6.以上均设置好后,就可以上线网站了。

首先,开通服务器上的nginx服务。

命令:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/zcy.conf

(如果该命令出现端口占用的提示,就杀掉上一个占用端口的nginx进程)

然后,在mysite目录里,开通uwsgi。

命令:uwsgi -x conf.xml

7.最后在浏览器中输入10.10.255.115:8183(取决于服务器的ip和端口)去看看吧,一切正常!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: