Django+uwsgi+nginx环境配置方法

本文详细介绍了如何在Ubuntu系统上配置Django 1.6.11与uWSGI以及Nginx的环境。包括Django、uWSGI和Nginx的安装过程,Nginx常用命令,以及如何通过uWSGI连接Django项目。最后,文章讲解了如何设置静态文件的显示,并提供了启动配置文件的示例。
摘要由CSDN通过智能技术生成
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    (重新启动)


如果启动成功,在浏览器中输入127.0.0.0:80,则可以在浏览器看到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
内容为:


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


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


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

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


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

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

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

在浏览器中输入127.0.0.1:8000可以看到

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

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


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


Django静态文件收集:
将Django自带的惊天文件收集到同一个static中,不然Django会找不到静态文件。(正常开发情况都会建立static文件夹)
在Django的setting文件中,添加:

到项目目录下执行:
python manage.py collectstatic

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


启动方式:
在启动uwsgi,然后在启动nginx,具体命令如下:

lab406@lab406-yang:~/xd/wl$ uwsgi --socket :8000 --chdir WaterAnalyse_V2/  --wsgi-file water_analyse/wsgi.py

lab406@lab406-yang:~$ sudo /etc/init.d/nginx start
在浏览器中访问一切正常:


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


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


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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值