当前位置: 首页 > 网络应用技术

UWSGI如何开始Django?

时间:2023-03-05 22:00:14 网络应用技术

  指南:今天,首席执行官Note将与您分享UWSGI如何启动Django的相关内容。如果您可以解决您现在面临的问题,请不要忘记注意此网站。让我们现在开始!

  1.首先将项目上传到阿里巴巴云服务器

  2.需要安装Python3.0版本(CenterOS7具有2.75版)

  3.在这里我不介绍如何安装Python高版本和虚拟环境

  4.在项目的根目录中创建虚拟环境,就像您在Pycharm中一样

  然后开始虚拟环境

  5.在虚拟环境中安装项目所需的依赖项

  PIP3安装要求.txt

  6.写Nginx配置文件和UWSGI配置文件

  配置如下

  nginx.conf

  请注意,编写Nginx配置文件后,您需要检查语法

  nginx -t注意不要忘记添加;或文章末尾的多个空间将导致错误

  nginx -s重新加载重新启动nginx

  uwsgi.ini配置如下

  7.所有配置之后

  开始虚拟环境

  VENV中的uwsgi uwsgi.ini可以启动您的项目

  1.安装UWSGI库

  PIP安装UWSGI

  2.在Django目录中创建配置文件。

  我的项目目录结构如下:

  输入apimanager(相应的设置,URLS)目录,即带有wsgi.py文件夹的djangoxx_socket.xml文件。

  我叫djangomgr_socket.xml,名称是休闲的。

  djangomgr_socket.xml内容如下:

  UWSGI

  插座:8999/插座

  chdir/webroot/wjc/apimgr // chdir

  Modulewsgi/模块

  proceses1/processes! - 过程编号 -

  daemonizeuwsgi.log/daemonize

  /uwsgi

  注意:

  1. CHDIR通往项目根目录的路径(包含Manage.py的目录)

  2.套接字端口号是需要在NGINX中访问的端口号

  3. Daemonize是运行日志。当不填充路径时,默认值将在与djangomgr_socket.xml相同的路径下生成uwsgi.log。当然,您也可以自己指定路径。

  3.配置nginx

  NGINX配置如下。配置配置后,测试并重新启动NGINX。

  测试nginx:

  命令:nginx -t -Test nginx配置文件是否错误

  重新启动nginx:

  命令:nginx -s reload(或服务nginx restart)

  服务器 {

  听80;

  server_name apimgr.myexist.cn;

  地点/{

  包括uwsgi_params;

  UWSGI_PASS 127.0.0.1:899;

  }

  本地?。*。html |zip |rar)$

  {{{

  root/webroot/wjc/apimgr/apimgr/templates/;

  如果(-f $ request_filename){

  到期最大;

  休息;

  }

  }

  access_log/var/log/nginx/myexist/apimgr.myexist.access.access.log;

  error_log/var/log/nginx/myexist/apimgr.myexist.cn.error.log;

  }

  4.开始服务:

  在djangoxx_socket.xml的路径下:

  execute命令:uwsgi -x djangoxx_socket.xml

  您可以启动服务,并且可以在uwsgi.log中查看启动日志

  最近,使用UWSGI启动Django服务,发现当停止/重新加载UWSGI时,将发生悬挂问题。

  在测试中,发现不管在UWSGI中使用了什么防御线来发送停止/重新加载信号,UWSGI都会进入假死亡的状态,即无请求或结束该过程。

  在此期间开始时,UWSGI流程正在处理未完成的Web请求。当没有请求时,UWSGI也将进入此衰减状态。

  首先,问题的原因是原因。

  这种衰减的问题是由于在UWSGI中使用线程引起的。

  最简单的Django服务是在此创建的,并从UWSGI开始。

  首先,配置UWSGI以过程模式启动,并在此处创建5个进程。

  UWSGI配置文件如下:

  现在,进入Reload UWSGI服务,并检查UWSGI的日志。

  结论:当UWSGI使用过程模式时,Reload UWSGI将不会遇到撞车问题。

  UWSGI是在过程中启动的,而无需撞击,因此现在尝试以线程模式启动WUSGI。此处启动了此处,每个过程都包含两个线程。

  UWSGI配置文件如下:

  重新加载UWSGI服务并观察日志输出。

  结论:在UWSGI中使用线程模式不会导致重新加载的问题死亡。

  UWSGI的线程不会引起任何问题。上一篇文章中所指的线程到底是什么?

  现在,在UWSGI启动脚本中创建线程。在这种情况下,尝试重新加载UWSGI并查看日志输出。

  然后在线程中启动UWSGI,然后重新加载UWSGI。

  结论:在UWSGI应用程序中使用线程会导致重新加载衰减。

  如果您需要在场景中使用UWSGI应用程序中的线程,则可以通过配置Reload-Mercy和Worker-Reload-Mercy的两个参数来避免撞击死亡的问题。

  UWSGI配置文件如下:

  再次重新加载UWSGI服务,输出日志如下:

  尽管这里也出现了无怜悯问题,但在重新加载过程中,UWSGI没有衰减。

  部署Django有很多方法。NGINX+UWSGI的方法是一种更常见的方法。

  这样,我们通常的方法是将NGINX用作服务器的前端,它将接收Web的所有请求并均匀地管理请求。NGINX请求所有静态请求以处理自身(这是NGINX的优势)。

  可以看出,UWSGI的作用类似于桥梁。它扮演了桥梁的角色。

  Linux的强度用于用作服务器,因此我们选择完成以下整个部署过程。

  环境:

  Python3.6

  Centos 7

  django1.11

  用Django编写一个小网站,只能在您自己的位置运行!该怎么办?我听说它可以在云服务器上部署,以便其他人可以访问它!

  它从哪里开始?从django!旧规则开始,请按照以下步骤操作:

  请勿在此处谈论Django项目的实施。假设您已经写了一个Django项目,并且可以以127.0.0.0.1:8000局部奔跑,请给您参考,该项目可能会像这样增长:

  也就是说,项目目录中的settings.py文件主要强调几个地方:

  ①关闭调试模式:

  ②修改允许的host:

  ③配置静态文件存储路径:

  修改配置后,执行:

  关于这一点,无话可说。

  最好在安装UWSGI和验证方法后进行验证:

  创建一个test.py文件:

  启动UWSGI服务器:

  如果您可以正常启动而无需报告,那应该没有问题。如果您不用担心,则可以在终端进行验证:

  以下配置在uwsgi.ini中执行:

  找到NGINX配置文件夹,CentOS7的NGINX配置文件在/etc/nginx下。此路径下有一个nginx.conf总配置文件,两个文件夹https://www.shouxicto.com/article/conf.d,https://wwwww.shouxicto.com/article/article/default.d,我们复制复制nginx.conf到conf.d文件夹,并将其命名为nginx.conf(或project name.conf),如下所示(根据中文注释相应的配置):

  输入uwsgi.ini文件夹以执行:

  在终端执行:

  参考资料:

  刘江的博客

  博客花园

  问答;

  匿名博客

  Django教程

  Django文档

  empty_xl博客

  uwsgi配置文件huayuntools.ini

  nginx配置文件

  uwsgi配置文件huayuntools.ini

  nginx配置文件

  创建一个文件夹,将所有INI文件放入/home/nginx/uwsgi文件夹中,然后运行

  结论:以上是有关UWSGI如何完成首席执行官注释的Django的摘要。希望它对您有所帮助!如果您解决了问题,请与更多关心此问题的朋友分享?