django结合nginx部署

  1. 云栖社区>
  2. 博客>
  3. 正文

django结合nginx部署

技术小阿哥 2017-11-26 15:12:00 浏览511
展开阅读全文

安装nginx

yum -y install nginx

安装uwsgi

1
2
3
4
5
6
wget http://projects.unbit.it/downloads/uwsgi-2.0.6.tar.gz
tar -zxvf uwsgi-2.6.tar.gz 
cd uwsgi-2.6.tar.gz 
python setup.py build 
make 
mv uwsgi /usr/bin/

uwsgi测试

创建test.py

1
2
3
4
# test.py
def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return ["Hello World"]

启动uwsgi

uwsgi --http :8000 --wsgi-file test.py

参数含义

http :8000 —— 协议 http,端口 8000

wsgi-file test.py —— 加载文件 test.py

访问 http://ip:8000

如果网页上是又HELLO world说明是正常的


配置django

编写django_wsgi.py文件,放在mange.py同一目录下

1
2
3
4
5
6
7
8
#!/usr/bin/env python
#coding: utf-8
import os,sys
reload(sys)
sys.setdefaultencoding('utf8')
os.environ.setdefault("DJANGO_SETTINGS_MODULE","Simplecmdb.settings")
from django.core.handlers.wsgi import WSGIHandler
application=WSGIHandler()

配置uwsgi

新建一个xml文件

vim uwsgi.xml。将他放在mange.py同一目录下

1
2
3
4
5
6
7
<uwsgi>
<socket>0.0.0.0:9001</socket>
<chdir>/root/Django-1.6.11/Simplecmdb</chdir>
<module>django_wsgi</module>
<processes>4</processes><!-- 进程数 -->
<daemonize>uwsgi.log</daemonize>
</uwsgi>

在上面的配置中,我们使用 uwsgi.log 来记录日志,开启4个进程来处理请求。

配置nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
user              root;
server {
        listen 80;
        server_name localhost;
        location / {
            uwsgi_pass 0.0.0.0:9001;
            include uwsgi_params;
        }
        location /static/{
            alias /root/Django-1.6.11/Simplecmdb/static/;
            index index.html index.htm;
        }
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
            root html;
        }
        }

重启nginx

启动uwsgi服务

uwsgi -x uwsgi.xml

访问服务http://ip/admin



这里要说下admin后台的css样式处理

修改settings.py,在站点目录下建立自己的静态文件夹

mkdir static

STATIC_ROOT = "/站点路径/static/"

运行下列命令将相关文件copy到static目录

python manage.py collectstatic

修改urls.py

1
2
import settings
url(r'^static/(?P<path>.*)$''django.views.static.serve',{'document_root': settings.STATIC_ROOT }),

重新刷新以后恢复正常


之前因为nginx的运行用户与static的用户不一样,坑了半天,这里要注意下



本文转自 shouhou2581314 51CTO博客,原文链接:http://blog.51cto.com/thedream/1680467,如需转载请自行联系原作者

网友评论

登录后评论
0/500
评论
技术小阿哥
+ 关注