Django+uwsgi+nginx环境配置方法

python:ubuntu16.04自带的python编译器 2.7.12 (命令为:python –version)
uwsgi: 2.0.14   (命令为:uwsgi --version)
nginx: 1.10.3   (命令为:nginx -V)

django: 1.6.11

安装过程:
python不用安装,ubuntu自带,但需要安装pip,具体安装命令为:
sudo  apt-get  install  python-pip python-dev  build-essential
sudo pip install --upgrade pip

uwsgi安装(不要用最新的版本,可能与python2.7.12不兼容,踩过的坑),具体安装命令为:
sudo pip install uwsgi==2.0.14

django安装,具体命令为:
sudo pip install django==1.6.11

nginx安装,具体安装命令为:
sudo apt-get install nginx

关于nginx的常用说明:
所有的配置文件都在/etc/nginx/下;
启动程序文件在/usr/sbin/下;
日志文件在/var/log/nginx/下面,分别是access.log和error.log;
并且在/etc/init.d下面创建了启动脚本nginx

nginx常用命令为:
sudo ​ /etc/init.d/nginx start       (启动)
sudo  /etc/init.d/nginx stop       (停止)
sudo  /etc/init.d/nginx restart    (重新启动)

Django+uwsgi+nginx环境配置方法

如果启动成功,在浏览器中输入127.0.0.0:80,则可以在浏览器看到nginx的显示页面:

Django+uwsgi+nginx环境配置方法

如果在以后的使用的过程中出现错误,如:

Django+uwsgi+nginx环境配置方法

首先可以查看nginx进程,命令为:ps -aux | grep nginx  显示的第二项就是进程号。
如果有很多个nginx进程,利用sudo kill -9  进程号    这个命令杀死进程。
如果杀死进程还无法启动,就利用提示systemctl status nginx.service来查看日志,根据提示修改(这个很重要)

到此为止安装过程已经完成。


测试uwsgi:
在测试uwsgi的过程中,一定要注意你当前所在的目录位置,否则会出现一些找不到app之类莫名奇妙的问题。这是一个初次配置者容易掉入的坑。

单独测试uwsgi,不用Django
在/home/lab406/xd/wl新建一个python文件,testuwsgi.py
内容为:

Django+uwsgi+nginx环境配置方法

打开终端,切到/home/lab406/xd/wl目录,输入如下命令:

Django+uwsgi+nginx环境配置方法

此时uwsgi已经成功启动,在浏览器中输入127.0.0.1:8000,可以看到

Django+uwsgi+nginx环境配置方法

此时证明uwsgi已经成功安装了。

下面用uwsgi来连接django:
假设你的Django项目已经创建成功,并且可以成功运行。
你可以用django-admin.py startproject 项目名来创建项目。
用python manage.py runserver 127.0.0.1:8000启动项目,然后在浏览器中输入127.0.0.1:8000如果显示如下图就创建成功了:

Django+uwsgi+nginx环境配置方法

使用uwsgi时应该停掉django自带服务器。

现在我以我的django项目的目录位置来详细说明
我的django项目名字为:WaterAnalyse_V2
在ubuntu上的位置是  /home/lab406/xd/wl

打开终端:切到/home/lab406/xd/wl目录,输入以下命令:

Django+uwsgi+nginx环境配置方法在浏览器中输入127.0.0.1:8000可以看到

Django+uwsgi+nginx环境配置方法

此时证明uwsgi和django已经成功对接上了,但仍然不是显示静态页面,所有需要使用nginx来调用静态页面

利用nginx来显示静态文件:
进入​​/etc/nginx/sites-enabled目录:

Django+uwsgi+nginx环境配置方法

先default文件备份以下(备份在其他位置,不要在这个目录下,否则nginx有可能启动不了)
修改default文件内容为:

Django+uwsgi+nginx环境配置方法

Django静态文件收集:
将Django自带的惊天文件收集到同一个static中,不然Django会找不到静态文件。(正常开发情况都会建立static文件夹)
在Django的setting文件中,添加:
Django+uwsgi+nginx环境配置方法
到项目目录下执行:
python manage.py collectstatic

修改配置文集setting文件,具体为:

Django+uwsgi+nginx环境配置方法

Django+uwsgi+nginx环境配置方法启动方式:
在启动uwsgi,然后在启动nginx,具体命令如下:

Django+uwsgi+nginx环境配置方法[email protected]:~/xd/wl$ uwsgi --socket :8000 --chdir WaterAnalyse_V2/  --wsgi-file water_analyse/wsgi.py

Django+uwsgi+nginx环境配置方法

[email protected]:~$ sudo /etc/init.d/nginx start
在浏览器中访问一切正常:

Django+uwsgi+nginx环境配置方法

到此为止Django+uwsgi+nginx已经完全配置成功。


说明:每次使用uwsgi启动都得输入一长串的命令,可以写成一个配置文件。
建立将启动配置文件命令为:projectname_uwsgi.ini 并且放在和Djang的manage.py文件同目录下:
具体配置内容如下:

Django+uwsgi+nginx环境配置方法

注意:没有写成全路径,所以需要在project的目录下运行。
具体命令为:
uwsgi  --ini    projectname_uwsgi.ini