安装nginx

yum -y install nginx

安装uwsgi

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

# 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同一目录下

#!/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同一目录下

<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

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

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

重新刷新以后恢复正常


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