Django uWSGI 启动

uWSGI是一个Python Web服务器,它实现了WSGI协议、uwsgi、http等协议,常在部署Django或Flask开发的Python Web项目时使用,作为连接Nginx与应用程序之间的桥梁

为什么需要uWSGI?

在生产环境中部署Python Web项目时,uWSGI负责处理Nginx转发的动态请求,并与我们的Python应用程序沟通,同时将应用程序返回的响应数据传递给Nginx。

Nginx本身就是Web服务器,我们为什么还需要uWSGI这个Web服务器呢?

Django不是自带runserver服务器?Flask不是自带Werkzeug吗? 答案是Nginx处理静态文件非常优秀,却不能直接与我们的Python Web应用程序进行交互。Django和Flask本身是Web框架,并不是Web服务器,它们自带的runserver和Werkzeug也仅仅用于开发测试环境,生产环境中处理并发的能力太弱。

为了解决Web 服务器与应用程序之间的交互问题,就出现了Web 服务器与应用程序之间交互的规范。最早出现的是CGI,后来又出现了改进 CGI 性能的FasgCGI,Java 专用的 Servlet 规范。在Python领域,最知名的就是WSGI规范了

现在你清楚uWSGI, WSGI和uwsgi的区别了吗?

  • uWSGI是Python Web服务器,实现了WSGI通信规范和uwsgi协议;
  • WSGI全名Web Server Gateway Interface,是一个Web服务器(如uWSGI服务器)与web应用(如用Django或Flask框架写的程序)通信的一种规范;
  • uwsgi是WSGI通信规范中的一种自有协议。

uWSGI的安装与启动

在指定的环境中也就是虚拟环境,pip install uwsgi 下载

之后可以写个测试查看是否安装成功:创建test.py文件,插入下面文件,江湖规矩 返回hello world

def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello World"]

然后使用如下命令启动uWSGI Web服务器, 端口8080.

uwsgi --http :8080 --wsgi-file test.py

网页进行ip:8080可以访问,说明ok

django项目启动

假设当前位置/home/user/data/
创建django项目
django-admin startproject projectName
cd projectName

这时候使用下面指令就可以启动了
uwsgi --http 0.0.0.0:8000 --chdir /home/user/data/projectName/ --wsgi-file projectName/wsgi.py

若是显示Internal Server Error 就是说明文件位置不对了

uwsgi配置文件启动

touch dj.ini
vim dj.ini
插入
[uwsgi]
; 绝对路径项目的目录
chdir = /home/user/data/projectName/

; 监听的端口,当没有nginx时候使用这个
http = 0.0.0.0:8000

; 代理静态资源:路径映射,没nginx时候要配置的
static-map = /static= static/

; 主应用中的wsgi文件,django框架创建时候会自动生成
wsgi-file = projectName/wsgi.py

; 启动一个master进程,来管理其余的子进程
master=True

;开四个进程
processes = 4

;开两个线程
threads = 2

; 设置每个工作进程处理请求的上限,达到上限时,将回收(重启)该进程。可以预防内存泄漏
max-requests=5000

; 服务停止时自动移除unix Socket和pid文件
vacuum=true

; django的运行日志保存的文件路径,配置了日志后,启动就是后台启动了
daemonize=./log/uwsgi.log

配置好了之后 uwsgi dj.ini 启动

Original: https://blog.csdn.net/SetpBy/article/details/127005754
Author: Step By
Title: Django uWSGI 启动

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/745998/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球