二维码

nginx + uWSGI 为 django 提供高并发

1739 人阅读 | 时间:2018年12月27日 10:09

django开发的服务器只能用于开发环境,在生产环境时候直接使用有安全以及性能问题。
nginx很好得解决这一问题, uwsgi为nginx和django直接搭建一个桥梁。

步骤1:
安装nginx:

启动停止命令:

先看看能否正常访问:

nginx + uWSGI 为 django 提供高并发

2 。 安装uwsgi

先创建一个简单脚本test.py测试uwsgi:

保存,运行

这里实现了个http Server 开放的http端口 8001
访问 127.0.0.1:8001
nginx + uWSGI 为 django 提供高并发

访问成功说明uwsgi基本没问题,再测试django工程;

先找到django工程中的 wsgi.py文件 ,在创建工程文件的时候应该自动创建好了:

假设我的django工程目录是这样的:

myDjangoProject/

├── manage.py

├── myweb/

│   ├── __init__.py

│   ├── settings.py

│   ├── urls.py

│   └── wsgi.py

└── myweb_uwsgi.ini

wsgi.py基本上是这个样子:

 

命令行输入:

常用选项:

http : 协议类型和端口号

processes : 开启的进程数量

workers : 开启的进程数量,等同于processes(官网的说法是spawn the specified number ofworkers / processes)

chdir : 指定运行目录(chdir to specified directory before apps loading)

wsgi-file : 载入wsgi-file(load .wsgi file)

stats : 在指定的地址上,开启状态服务(enable the stats server on the specified address)

threads : 运行线程。由于GIL的存在,我觉得这个真心没啥用。(run each worker in prethreaded mode with the specified number of threads)

master : 允许主进程存在(enable master process)

daemonize : 使进程在后台运行,并将日志打到指定的日志文件或者udp服务器(daemonize uWSGI)。实际上最常用的,还是把运行记录输出到一个本地文件上。

pidfile : 指定pid文件的位置,记录主进程的pid号。

vacuum : 当服务器退出的时候自动清理环境,删除unix socket文件和pid文件(try to remove all of the generated file/sockets)

此处如果输入没有问题,访问127.0.0.1:8001 能够正常访问网站

输入长长的命令行会稍显麻烦,此处可以创建一个配置文件myweb_uwsgi.ini

内容如下:

 

输入命令:

然而此处对我并没有X用,提示:

此处百思不得其解,幸好使用 命令同样效果:

3.下面配置nginx:
编辑nginx配置文件:


访问 127.0.0.1 查看效果,配置完成

 

补充:uwsgin 对于url 长度有限制,会丢弃超长url链接,这时候要增加缓存,如果是配置文件ini ,增加buffer-size=32768
如果是命令行中,增加 -b 32768
如果使用mysql数据库,当数据库长时间没有连接是,数据链接会关闭,访问网站会返回500错误,可以在参数加上 --lazy-apps 选项

参考资料: http://uwsgi-docs-zh.readthedocs.io/zh_CN/latest/tutorials/Django_and_nginx.html

英文版本:http://uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html


取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

©著作权归作者所有:来自ZhiKuGroup博客作者没文化的原创作品,如需转载,请注明出处,否则将追究法律责任 来源:ZhiKuGroup博客,欢迎分享。

评论专区
  • 昵 称必填
  • 邮 箱选填
  • 网 址选填
◎已有 0 人评论
搜索
作者介绍
30天热门
×
×
关闭广告
关闭广告
本站会员尊享VIP特权,现在就加入我们吧!登录注册×
»
会员登录
新用户注册
×
会员注册
已有账号登录
×