uWSGI+Django+Nginx的工作原理流程与部署过程(3)

好了,现在理一下路径:

工程路径: /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

sudo uwsgi --ini /wwwroot/destiny/destiny.ini

启动nginx
在这之前,我们要先去nginx配置文件的根目录拷贝mime.types(/etc/nginx/conf/mime.types)到工程目录(/wwwroot/destiny/mime.types),和destiny.conf放在一起
否则用配置文件启动nginx会报错:

nginx: [emerg] open() "/**/**/**/mime.types" failed (2: No such file or directory)

如果nginx已经开启,先关闭nginx(service nginx stop),再执行以下命令:

nginx -c /wwwroot/destiny/destiny.conf

这里的-c 表示加载配置文件启动

四、后记

到这里,工作基本就做完了,可以打开浏览器,输入自己项目的IP地址,如查看效果了。

example

如果启动时就报错,查看终端信息,解决错误。
如果终端没有报错,但是浏览时出现500、502等错误,就去项目目录查看nginx日志和uWSGI日志,解决错误。

自己在部署时,遇到很多坑,网上的教程大多附带virtualenv和supervisor的部署,但是连最基本的部署都说不明白,部署出来的东西性能再好也没指导意义。基于自己踩坑脱坑的过程,写下此文。

正如以上所说,我只是用单独的一个conf文件,在nginx上部署了一个工程,没有说明部署多个工程的问题;也没有使用virtualenv开发环境、使用supervisor来管理进程等。请根据个人爱好和需要去实践扩展。

更多参考

Nginx+uWSGI+Supervisor在Ubuntu上部署Flask应用 

Ubuntu Server 12.04 安装Nginx+uWSGI+Django环境  

快速部署Python应用:Nginx+uWSGI配置详解 

Nginx+uWSGI+Django+Python 应用架构部署 

Ubuntu Server 14.04.2 LTS 配置 Nginx + Uwsgi + Django 

Flask+uWSGI+Nginx+Ubuntu部署教程

Ubuntu 16.04下安装部署 Nginx+uWSGI+Django1.9.7 

Nginx+uWSGI+Django在Ubuntu下的部署 

Linux 上利用Nginx代理uWSGI处理Flask Web应用 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/0d913b68e8dbb859dd05f194518a777e.html