Python+Django+Nginx+Uwsgi 详细部署过程(爬坑过程)

本文详细记录了在Linux环境中部署Python 3.6.2 Django项目,结合Nginx和Uwsgi的全过程,包括Python的安装配置、Django项目的迁移、Uwsgi的设置以及Nginx的配置和启动,旨在帮助开发者避免部署过程中可能遇到的问题。
摘要由CSDN通过智能技术生成

这个部署,我真的是爬了好久的坑,才爬出来,所以给大家分享一下,避免入坑。

首先我们先了解一下相关知识:

wsgi:

一种实现python解析的通用接口标准/协议,是一种通用的接口标准或者接口协议,实现了python web程序与服务器之间交互的通用性。 
利用它,web.py或bottle或者django等等的python web开发框架,就可以轻松地部署在不同的web server上了;

uwsgi:

同WSGI一样是一种通信协议 
uwsgi协议是一个uWSGI服务器自有的协议,它用于定义传输信息的类型,它与WSGI相比是两样东西。

uWSGI :一种python web server或称为Server/Gateway 
uWSGI类似tornadoweb或者flup,是一种python web server,uWSGI是实现了uwsgi和WSGI两种协议的Web服务器,负责响应python 的web请求。 
因为apache、nginx等,它们自己都没有解析动态语言如php的功能,而是分派给其他模块来做,比如apache就可以说内置了php模块,让人感觉好像apache就支持php一样。 
uWSGI实现了wsgi协议、uwsgi协议、http等协议。 Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。

其次了解一下项目流程:

1.首先客户端请求服务资源,

2.nginx作为直接对外的服务接口,接收到客户端发送过来的http请求,会解包、分析,

如果是静态文件请求就根据nginx配置的静态文件目录,返回请求的资源,

如果是动态的请求,nginx就通过配置文件,将请求传递给uWSGI;uWSGI 将接收到的包进行处理,并转发给wsgi,

3.wsgi根据请求调用django工程的某个文件或函数,处理完后django将返回值交给wsgi,

4.wsgi将返回值进行打包,转发给uWSGI,

5.uWSGI接收后转发给nginx,nginx最终将返回值返回给客户端(如浏览器)。

*注:不同的组件之间传递信息涉及到数据格式和协议的转换

接下来请看详细的安装与配置步骤:

1.检测yum是否完好:yum list

2.安装python需要的依赖包:yum  -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make    (手敲,任何地方都别复制)


3.下载python包:

linux系统默认安装了python

我们需要的版本是python 3.6.2,在centos上进行python2和3并存

wget https://www.python.org/ftp/python /3.6.2/Python-3.6.2.tar.xz

在根目录的opt下可以查看下载好的python3.6.2的压缩包

  • 6
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值