好了,现在理一下路径:
工程路径: /wwwroot/destiny 工程静态文件路径: /wwwroot/destiny/destiny/static wsgi.py的路径: /wwwroot/destiny/destiny/wsgi.py uwsgi.ini的路径: /wwwroot/destiny/uwsgi.ini uwsgi日志路径: /wwwroot/destiny/uwsgi.log destiny.conf的路径: /wwwroot/destiny/destiny.conf uwsgi_params的路径: /etc/nginx/conf/uwsgi_params nginx访问日志路径: /wwwroot/destiny/nginx_access.log nginx错误日志路径: /wwwroot/destiny/nginx_error.log可以发现,我几乎把所有有关工程的配置文件和日志文件都放在工程目录下了,方便后期维护与查错。
启动uWSGI
启动nginx
在这之前,我们要先去nginx配置文件的根目录拷贝mime.types(/etc/nginx/conf/mime.types)到工程目录(/wwwroot/destiny/mime.types),和destiny.conf放在一起。
否则用配置文件启动nginx会报错:
如果nginx已经开启,先关闭nginx(service nginx stop),再执行以下命令:
nginx -c /wwwroot/destiny/destiny.conf这里的-c 表示加载配置文件启动
四、后记到这里,工作基本就做完了,可以打开浏览器,输入自己项目的IP地址,如查看效果了。
如果启动时就报错,查看终端信息,解决错误。
如果终端没有报错,但是浏览时出现500、502等错误,就去项目目录查看nginx日志和uWSGI日志,解决错误。
自己在部署时,遇到很多坑,网上的教程大多附带virtualenv和supervisor的部署,但是连最基本的部署都说不明白,部署出来的东西性能再好也没指导意义。基于自己踩坑脱坑的过程,写下此文。
正如以上所说,我只是用单独的一个conf文件,在nginx上部署了一个工程,没有说明部署多个工程的问题;也没有使用virtualenv开发环境、使用supervisor来管理进程等。请根据个人爱好和需要去实践扩展。
更多参考
Nginx+uWSGI+Supervisor在Ubuntu上部署Flask应用
Ubuntu Server 12.04 安装Nginx+uWSGI+Django环境
Nginx+uWSGI+Django+Python 应用架构部署
Ubuntu Server 14.04.2 LTS 配置 Nginx + Uwsgi + Django