指南:今天,首席执行官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的摘要。希望它对您有所帮助!如果您解决了问题,请与更多关心此问题的朋友分享?