配置目的:

由于django自带的web服务器弱爆了,用于开发测试还可以;如果在正式环使用就需要nginx+uwsgi+django了。


本文侧重uwsgi环境搭建,如想学习本文中1、2步的环境搭建方法,待我今后有时间再整理发博文了。


配置前提,python+django环境已经OK,并且项目已经可以web访问!


服务器环境:

centos6.4x64

python2.7.3


注意:下文的mysite代指django的项目名称


1.安装配置好nginx,django等相关软件(略)


2.安装配置好setuptools,pip等相关软件(略)


3.安装uwsgi

#pip install uwsgi


测试uwsgi是否正常:

新建test.py文件,内容如下:

def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return "Hello World"


然后在终端运行:

#uwsgi --http :8001 --wsgi-file test.py

如果页面出现 Hello World 说明配置成功。

 CentOS+nginx+uwsgi+Python+django 环境搭建_第1张图片



4.配置nginx.conf文件:

#vim nginx.conf
server {
    listen 80;
    server_name 192.168.232.10;
    location / {
        include uwsgi_params;
        uwsgi_pass 0.0.0.0:9000;
        }
    location /static {
        expires 30d;
        autoindex on;
        add_header Cache-Control private;
        alias /opt/share/mysite/statics/; #注意此处为django项目下的静态目录
     }
 }


之后重启nginx服务。


5.配置uwsgi


#cd django项目目录

#ls 

db.sqlite3  hosts  manage.py  mysite  statics  templates  uploads  uwsgi.ini  uwsgi.log

#vim uwsgi.ini
[uwsgi]
socket = 0.0.0.0:9000
processes = 8  #进程数
chdir = /opt/share/mysite/
pythonpath = /usr/bin/python
env = DJANGO_SETTINGS_MODULE=mysite.settings
module = django.core.wsgi:get_wsgi_application()


说明:http=0.0.0.0:9000 是指用http方式,这样不通过Nginx等web服务器,也可以外部访问这个程序。如果是使用web服务器,必须使用socket方式.


6.启动uwsgi

前台启动:

#uwsgi uwsgi.ini

后台启动:

#/usr/bin/uwsgi /opt/share/mysite/uwsgi.ini -d /opt/share/mysite/uwsgi.log

关闭uwsgi:

#pkill uwsgi

配置nginx及uwsgi开机启动:

#vim /etc/rc.d/rc.local
/etc/init.d/nginx start
/usr/bin/uwsgi /opt/share/mysite/uwsgi.ini -d /opt/share/mysite/uwsgi.log


7.测试访问


在本地,访问  192.168.232.10 ,如果能正常访问说明配置OK。

效果图:

 CentOS+nginx+uwsgi+Python+django 环境搭建_第2张图片