配置uWSGI启动Django_chenyq234的博客-程序员秘密_uwsgi启动django

技术标签: python  django  

1.在虚拟环境下安装uUWSGI

(env_dj) [[email protected] MyWebWord]# pip3 install uwsgi

2.在项目的同级目录新建一个script目录,然后新建一个uwsgi.ini文件

(env_dj) [[email protected] MyWebWord]# mkdir script  # 新建目录
(env_dj) [[email protected] MyWebWord]# cd script     # 进入目录
(env_dj) [[email protected] script]# vim uwsgi.ini    # 新建uwsgi.ini

# 也可以在其他目录下新建uwsgi.ini文件,我这里直接在项目目录下创建,如下:
(env_dj) [[email protected] MyWebWord]# vim uwsgi.ini

3.配置uwsgi.ini文件
当配置socket或http,服务器地址时,这里有个坑需要注意–如果我们使用的是云服务器,这里要写私有IP----不要写公网IP

[uwsgi]
#套接字方式--使用nginx连接时使用,后面是Django程序所在服务器地址
# socket=192.168.0.214:8000

#http通信方式--直接做web服务器使用,后面是Django程序所在服务器地址
http=192.168.0.214:8000

#配置当前工作的项目目录
chdir=/home/myproject/MyWebWord

#项目中wsgi.py文件的目录,相对于项目目录
wsgi-file=MyWebWord/wsgi.py

# 进程数
processes=4

# 线程数
threads=2

# 开启主进程模式--uwsgi服务器的角色   uwsgi做主进程,关闭该进程其他相关进程也会被杀掉
master=True

# 存放进程编号的文件
pidfile=uwsgi.pid

# 后台运行,并输出日志,后面是日志文件位置,后台运行时看不见终端所以只能查看日志
daemonize=uwsgi.log

一般使用以上配置基本可以满足需求–但是uwsgi还有很多其他配置项如下:

# 并发的socket 连接数。默认为100。优化需要根据系统配置--未测试
listen = 4

# 如果想加载静态文件,则配置静态文件所在目录--未测试
static-map=/static=/home/myproject/MyWebWord/static

# 指定依赖的虚拟环境--未测试
virtualenv=/home/python/.virtualenvs/django_2.2_env

# 指定python环境路径    二选一     --未测试
pythonpath=/home/python/.virtualenvs/django_2.2_env/lib/python/site-packages
# pythonpath=/home/python/.virtualenvs/django_2.2_env/bin

#monitor uwsgi status 通过该端口可以监控 uwsgi 的负载情况--未测试
stats = 0.0.0.0:9192

# 启动uwsgi的用户名和用户组
uid=root
gid=root

# 设置自中断时间
harakiri=30
# 设置缓冲
post-buffering=4096

# 设置自中断时间
harakiri=30

# 设置缓冲
post-buffering=4096

4.使用uwsgi启动web服务
启动时进入虚拟环境–进入项目目录–输入以下命令

uwsgi --ini uwsgi.ini

5.关闭uswsgi
关闭时进入虚拟环境–进入项目目录–输入以下命令

uwsgi --stop uwsgi.pid

或者使用pkill杀掉所有uwsgi进程:
pkill -f -9 uwsgi

6.Django的settings.py文件配置

# 配置为生产环境时关闭debug功能
DEBUG = False  

# 配置ALLOWED_HOSTS
ALLOWED_HOSTS = ['公网IP', 'localhost', '0.0.0.0:8000', '127.0.0.1']

7.使用脚本启动uWSGI
使用脚本前,需要先进入项目的虚拟环境后在执行脚本
启动uWSGI

import os
print('开始执行启动uWSGI')

print('执行命令: cd /home/myproject/MyWebWord')
os.popen(r"/home/myproject/MyWebWord")

start = os.popen('uwsgi --ini uwsgi.ini').read()
print('执行命令: uwsgi --ini uwsgi.ini')
print(start)

print('脚本执行完毕')

停止uWSG

import os
print('开始执行停止uWSGI')

print('执行命令: cd /home/myproject/MyWebWord')
os.chdir(r"/home/myproject/MyWebWord")

print('执行命令: uwsgi --stop uwsgi.pid')
stop = os.popen('uwsgi --stop uwsgi.pid').read()
print(stop)

print('脚本执行完毕')
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39422137/article/details/124071494

智能推荐

小偷的背包_qq_43835745的博客-程序员秘密_c++小偷的背包

小偷的背包#includeusing namespace std;int dfs(int x);int s,n,shu[1000],w[1000];int main(){shu[1000] = 0; //将数组shu全部赋值为0cin>>s>>n; //输入全局变量s,nfor(int i=0;i<n;i++){c...

2021年中式烹调师(初级)考试资料及中式烹调师(初级)证考试_zd0618的博客-程序员秘密

题库来源:安全生产模拟考试一点通公众号小程序中式烹调师(初级)考试资料是安全生产模拟考试一点通总题库中生成的一套中式烹调师(初级)证考试,安全生产模拟考试一点通上中式烹调师(初级)作业手机同步练习。2021年中式烹调师(初级)考试资料及中式烹调师(初级)证考试1、【单选题】调味的目的与作用:1)确定和丰富菜肴的口味;2)去除异味;3)();4)丰富菜品的色彩;5)调节菜品的质感。(D)A、增强菜肴香气B、食疗C、保健作用D、增强食疗保健作用2、【单选题】用()的碳酸钠...

Linux 下c获取当前时间(精确到秒和毫秒或者微秒)_Zuo丶的博客-程序员秘密_linux获取微妙

获取当前的时间的秒数和微秒数本方法需要用到gettimeofday()函数,该函数需要引入的头文件是 sys/time.h 。函数说明int gettimeofday (struct timeval * tv, struct timezone * tz)1、返回值:该函数成功时返回0,失败时返回-1 2、参数 struct timeval{ long tv_sec; //秒 lon...

【自定义View】自动滚动的TextView(跑马灯)——可获取完成一次滚动后的监听_痞子小小崔的博客-程序员秘密

AutoRollTextViewByRunnable类class AutoRollTextViewByRunnable extends androidx.appcompat.widget.AppCompatTextView implements Runnable { String TAG = "MarqueeText"; private int currentScrollX = 0;// 当前滚动的位置 private int textWidth; private int

随便推点

hadoop当中支持的压缩算法_学习·笔记的博客-程序员秘密

文件压缩有两大好处,节约磁盘空间,加速数据在网络和磁盘上的传输前面hadoop的版本经过重新编译之后,可以看到hadoop已经支持所有的压缩格式了,剩下的问题就是该如何选择使用这些压缩格式来对MapReduce程序进行压缩可以使用bin/hadoop checknative 来查看编译之后的hadoop支持的各种压缩,如果出现openssl为false,那么就在线安装一下依赖包bin/ha...

cf----2019-08-21( Array and Segments,Average Superhero Gang Power,Nice Garland)_0k-ok的博客-程序员秘密

妙笔难书一纸愁肠,苍白的誓言,终究抵不过岁月的遗忘。Array and SegmentsThe only difference between easy and hard versions is a number of elements in the array.You are given an arrayaaconsisting ofnnintegers. The valu...

经典的端到端的立体匹配网络:PSMNet(Pyramid Stereo Matching Network)_pursue excellence AI的博客-程序员秘密_psmnet

论文地址:https://arxiv.org/abs/1803.08669代码地址:https://github.com/JiaRenChang/PSMNet

手把手编写自己的 PHP MVC 框架实例教程_HorseRunningNoStop的博客-程序员秘密_mvc教程

1 什么是MVCMVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。除此之外,此模式通过对复杂度的简化,使程序结构更加直观。软件系统通过对自

自用|isnumeric()=0或1_时光$11的博客-程序员秘密_isnumeric(字段)=1

isnumeric当输入表达式得数为一个有效的整数、浮点数、money 或 decimal 类型,那么 ISNUMERIC 返回 1;否则返回 0。可在插入字段的使用用于判断字段类型,(case when ISNUMERIC(GROSSTONNAGE) = 1 then CONVERT(real, GROSSTONNAGE) ELSE '0' END) as GROSSTONNAGE ,可结合case when 函数进行判断分析...

召唤神龙Ladon强化Cobalt Strike_k8gege的博客-程序员秘密

Ladon5.5 20191109 wiki update 20191114 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KDgZHRa7-1574336752447)(https://img.shields.io/badge/Ladon-5.5-yellowgreen)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h5T...

推荐文章

热门文章

相关标签