部署Django+ Nginx + uwsgi

2017年7月30日 23:02 713  0  Django python

在耗尽了我的洪荒之力之后,终于将blog给部署好了。

其路途是曲折的,过程是痛苦的,结果本是绝望的。但是万万没想到···最后还是给部署好了。

本次部署的环境:Django 1.10.6 + Mysql + Ubuntu16.04 + Nginx + uwsgi

网上blog,论坛等相关教程千千万,我就不一一细说,可自行寻找,只说下几个需要注意的地方。

部署前Django项目settings.py中的设置:

DEBUG = False
ALLOWED_HOSTS = ['.example.com', '127.0.0.1', 'localhost ']

ALLOWED_HOSTS是允许访问的域名列表,127.0.0.1 和 localhost 是本地访问的域名,.example.com 是访问服务器的域名(换成你自己的域名)。域名前加一个点表示允许访问该域名下的子域名。

快速安装开发环境中的第三方库

在开发机上的终端中输入以下命令:

pip freeze > requirements.txt

这个命令可以生成你所在开发环境的第三方库,将这些库写入txt文件中。

然后将requirements.txt文件复制传到你服务器上,并执行:

pip install -r requirements.txt

这时系统会自动读取此文件中第三方库的信息并进行安装

同步静态文件:

运行:

python manage.py collectstatic

收集你项目下所有的静态文件,若没执行此操作,会导致你无法加载静态文件

使用Nginx + uwsgi

  • 第一步先解决uwsgi与django的桥接。解决在没有nginx的情况下,如何使用uwsgi+DJANGO来实现一个简单的WEB服务器。
  • 第二步解决uwsgi与Nginx的桥接。通过nginx与uwsgi的桥接,打通nginx与django的连通,从而比较完美的实现django的部署。

这里我想说,网上教程有很多,我之前就是找教程,然后跟着教程走,但是毕竟教程上的环境跟你自己环境多多少少有点出入,我先后走了3个教程,填了一个坑,过一会又来一个,结果就是部署不好,后来实在是受不了了。直接看官方文档了,虽然文档是英文,没有中文看的舒服,但是我有谷歌翻译,有道词典啊。然后跟着文档走,一遍成功!真的是全程无痛。我只想说:

没有什么是读一遍官方文档不能解决的,如果有,那就再读一遍

这里送上无痛链接,请自行体会:

Setting up Django and your web server with uWSGI and nginx

走完文档,基本你的部署就算是部署好了,然后剩下的相关优化就自己去查找相关资料了。祝小伙伴们早日填完这坑,部署好自己的网站。