在树莓派上搭建 Nginx + uWSGI + Django 架构服务器的过程中所学到的


打算在树莓派上配置一个服务器,后端用Django框架 。选择的原因是 一来比较熟悉 二来Django支持sqlite 这样就不用安装mysql了(资源占用什么的...)。 鉴于Apache资源占用比较大,于是使用nginx。但是nginx不直接支持Python ,因此静态的资源(譬如图片、CSS、JS)和页面可以交由Nginx处理 ,非静态的东西都还是需要一个中间的接口来处理,我选用的uWSGI。

总而言之,是在树莓派上实现一个Nginx + uWSGI + Django 架构的服务器。

原本打算写成一个教程性质的东西,然而我对Linux系统就不怎么熟 在linux上搭建服务器更是头一回 。 于是稀里糊涂,东一榔头西一棒槌的。虽然最终搭建成功了,并且过程中也学到了很多东西,但让我从头到尾梳理一遍,我却做不到了 。 因为一来时间跨度太长,从下载安装nginx uwsgi 到搭建成功花了将近两天。 二来参考的教程太多,而各自有各自的配置方法 。譬如 uwsgi的配置可以用ini、xml、yaml、运行时候调用的参数等各种方法。配置项还多的要死,专门看它的配置参数都看了一个小时。各个教程中启动uwsgi的方法也不一而足。 三来 安装uWSGI的过程中各种出问题,为了看懂LOG以及解决问题,也各种google了。遇见的问题确实有点多,也不都记得了。现在还记得的一个是出现“!!! no internal routing support, rebuild with pcre support !!!” 错误。这个错误貌似是因为安装uwsgi前没有一些所需库,于是pcre 功能没有编译,解决方法在这

总而言之,下边是我所学到的东西。

  1. 上述架构说起来简单,但其实是一个很复杂的东西。基本上是由Nginx处理外部HTTP请求,静态请求自己处理,将动态请求转交给uWSGI。uWSGI则调用Django框架的app来对动态请求进行处理。

  2. 在配置部署的时候,最好的办法是分块调试。先分别确认nginx、uWSGI、Django已经安装好了,可以正常运行。然后配置uWSGI和Django的连接。最后处理Nginx和uWSGI的连接以及upstart设置。

3 一般情况下,安装是没有问题的,主要是配置的问题。首先质疑配置文件是否正确加载。然后看看配置文件是否正确,尤其是各种路径。最后再去考虑安装的问题。在部署配置的时候尤其注意看log,很多问题都直接反应在log中。

4 虽然树莓派是基于Debian,但还是有些微的不同。而现在Ubuntu用户很多,相应的教程也很多,于是教程上和自己的状况还是有些差距。于是还是要自己搞清楚每个设置的意思,从而解决问题。教程只是个指导,按照教程轻松做出来了并不意味着自己会了。只有自己亲手做一遍,把出现的问题都自己解决了,才能学到东西。

评论!

社交