Nginx+uWSGI+Django环境搭建过程分享

如何搭建一个线上的Django环境,对于这种问题,一般本能的感觉是不难,网上肯定一堆资料,照着敲就可以了,所以很多人直接回复的是,上网上查,自己都快被网上的资料整崩溃了,看了几十篇没一个能按着步骤搭建完成的,网上的内容第一同质化内容太严重,基本你看一篇其它都不用看了,基本都一样,另外最最主要的是文章内容没有价值,因为10篇有9篇都是很久以前的文章,就现在这IT技术的发展,尤其是使用开源的东西,基本每天都在变化,要按这些文章做,能搭建成才怪,所以为了避免大家浪费时间去看那些无用的内容,我就把之前的搭建的环境,整理下,发给大家做个参考,方便大家快速部署线上环境:

具体安装Nginx, uWSGI,Django不多说了,都是老步骤,除Nginx,另外两个都可以通过pip安装,也很方便。

安装完后假设你还没有项目,我们一步一步来,新建一个:

#cd /home #mkdir mytest #cd mytest #django-admin startproject my_dj

这样就在/home/mytest/my_jd下建立一个项目,目录结构如下:

my_dj/ |-- manage.py `-- my_dj     |-- __init__.py     |-- settings.py     |-- urls.py     `-- wsgi.py

接下来配置nginx.conf文件,因为文件太长,我只贴关键行了:

server {         listen      80;         server_name  ;         root  /home/mytest/my_dj;         index  index.pyindex.htm;         access_log  /var/log/nginx/mindg.access.log;           location / {             include    uwsgi_params;             uwsgi_pass 127.0.0.1:9001;         }

这样nginx就配置完毕了,然后启动uwsgi,启动命令如下:

uwsgi --socket 127.0.0.1:9001 --chdir /home/mytest/my_dj/ --wsgi-file /home/mytest/my_dj/my_dj/wsgi.py  -d uwsgi.log

注:具体的生成环境可以加自己需要的参数(这个网上真有),也可以写成一个xml或ini的配置文件, -d是后台运行,后跟的日志文件名

然后测试,在此我们需要一个简单的页面来测试,进入/home/mytest/my_dj/my_jd目录下,新建一个views.py文件,内容如下:

fromdjango.httpimportHttpResponse   defindex(request):     return HttpResponse('hello world')

然后修改urls.py如下,标红的是新加的:

fromdjango.conf.urlsimportpatterns, include, url   fromdjango.contribimportadmin from .viewsimportindex admin.autodiscover()   urlpatterns = patterns('',     # Examples:     # url(r'^$', 'my_dj.views.home', name='home'),     # url(r'^blog/', include('blog.urls')),       url(r'^admin/', include(admin.site.urls)),     url(r'^$', index), )

测试,在浏览器里输入:

将显示”hello world”,表示搭建成功。

更多参考

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

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

快速部署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/6687f0468dea33b73d6667e3b9012025.html