折腾了两天 在各种手贱之后 终于还是把django部署在uwsgi+nginx环境上面了 当然是本地的 之后部署在阿里云上
首先是要安装uwsgi
apt-get install build-essential python
apt-get install python-dev
然后就可以用包管理或者编译源码的方法安装uwsgi
这里使用pip安装
export LDFLAGS="-Xlinker --no-as-needed" #不知道加这个环境变量是做啥= =
sudo pip install uwsgi
然后根据这个帖子的写一个脚本测试uwsgi是否正常工作
# test.py def application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) return "Hello World"
然后执行shell命令:
uwsgi --http :8001 --wsgi-file test.py
访问网页:
然后再在django项目的根目录写一个测试uwsgi的脚本 用uwsgi代理django项目 接受http请求
#!/usr/bin/env python # coding: utf-8 import os import sys # 将系统的编码设置为UTF8 reload(sys) sys.setdefaultencoding('utf8') os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings") from django.core.handlers.wsgi import WSGIHandler application = WSGIHandler()注意把mysite改成django项目名称
然后执行shell指令
uwsgi --http :8000 --chdir /home/work/src/sites/testdjango1/testdjango/mysite --module django_wsgi看下http://127.0.0.1:8000/中是否出现django项目页面
sudo apt-get install nginx直接安装nginx
然后在django项目下建立一个uwsgi和nginxsocket通信的xml文件
:8077 /home/work/src/sites/testdjango1/testdjango/mysite django_wsgi 4 uwsgi.log
uwsgi -x djangochina_socket.xml
然后sudo gedit /etc/nginx/sites-enable/default
然后在server中把
location / { }中的内容改为
include uwsgi_params; uwsgi_pass 127.0.0.1:8077;把listen 80前面的注释去掉
然后 sudo /etc/init.d/nginx -s reload
sudo /etc/init.d/nginx restart
然后访问127.0.0.1 或者 ifconfig出来的本地ip即可看到django项目的首页 你要加上:80也没事
然后随便更改django项目中的内容 即可在页面中看到相应的变化 貌似不需要重新启动啥的
先这么着吧