uwsgi

uWSGI + virtualenv 'No module named site'

杀马特。学长 韩版系。学妹 提交于 2020-08-22 04:21:05
问题 So this seems to be a really common problem with this setup, but I can't find any solutions that work on SO. I've setup a very new Ubuntu 15.04 server, then installed nginx, virtualenv (and -wrapper), and uWSGI (via apt-get, so globally, not inside the virtualenv). My virtualenv is located at /root/Env/example . Inside of the virtualenv, I installed Django, then at /srv/www/example/app ran Django's startproject command with the project name example , so I have vaguely this structure: -root

安装uwsgi和使用uwsgi

江枫思渺然 提交于 2020-08-18 14:39:51
安装uwsgi和使用uwsgi 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 安装依赖 apt-get install build-essential python-dev 安装 uWSGI 使用python3的pip来安装 pip3 install uwsgi 创建配置文件 创建类似配置文件,uwsgi.ini [uwsgi] socket = 127.0.0.1:3031 chdir = /home/foobar/myproject/ wsgi-file = myproject/wsgi.py processes = 4 threads = 2 stats = 127.0.0.1:9191 启动 uwsgi --ini uwsgi.ini 重启 uwsgi --reload uwsgi.ini 停止 uwsgi --stop uwsgi.ini 如果关闭失败的话可以关闭服务 sudo pkill -f uwsgi -9 感谢 万能的网络 以及勤劳的自己 来源: oschina 链接: https://my.oschina.net/guizimo/blog/4287198

039. Nginx 负载均衡

你离开我真会死。 提交于 2020-08-18 10:43:17
1. 基于反向代理的功能,Nginx 作为负载均衡主要有以下几点理由: 高并发连接。 采用 epoll nio 的形式。 内存消耗少。 使用了大量自带的数据结构(自己设计的)。 数据拷贝采用类零拷贝的形式降低内存的使用。 配置文件非常简单。 成本低廉。 开源免费。 支持 Rewrite 重写规则。 内置的健康检查功能。 节省带宽。 稳定性高。 2. 正向代理和反向代理 正向代理 正向代理类似一个跳板机,代理访问外部资源。 反向代理 实际运行方式是指以代理服务器来接受 internet 上的连接请求,然后将请求转发给内部网络上的服务器,并从服务器上得到的结果返回给 internet 上请求连接的客户端,此时代理服务器对外表现为一个服务器。 反向代理的作用 保证内网的安全,可以使用反向代理提供 WAF 功能,阻止 web 攻击。大型网站,通常将反向代理作为公网访问地址,web 服务器是内网。 负载均衡,通过反向代理服务器来优化网站的负载。 3. 负载均衡原理 负载均衡,单从字面的意思来理解就可以解释 N 台服务器平均分担负载,不会因为某台服务器负载高宕机和某台服务器闲置的情况。那么负载均衡的前提就是要 2 台以上服务器才能实现。 1. 4 种配置方案 轮询。 轮询即 Round Robin,根据 Nginx 配置文件中的顺序,依次把客户端的 Web 请求分发到不同的后端服务器上。

解决 Django 多进程下,logging 记录日志错乱问题

十年热恋 提交于 2020-08-17 20:59:19
之前写过一篇文章 Django 中如何优雅的记录日志 ,本以为代码上线之后,就可以愉快的看日志,通过日志来分析问题了,但现实总是跟想象不同,两个异常现象纷纷挥起大手,啪啪地打在我的脸上。 两个异常如下: 日志写入错乱; 日志并没有按天分割,而且还会丢失。 在网上查找一些资料,发现了原因所在: Django logging 是基于 Python logging 模块实现的,logging 模块是线程安全的,但不能保证多进程安全。我的 Django 项目是通过 uwsgi 启的多进程,所以就发生了上述两个问题。 下面来详细描述一下这个异常过程,假设我们每天生成一个日志文件 error.log,每天凌晨进行日志分割。那么,在单进程环境下是这样的: 生成 error.log 文件; 写入一天的日志; 零点时,判断 error.log-2020-05-15 是否存在,如果存在则删除;如果不存在,将 error.log 文件重命名为 error.log-2020-05-15; 重新生成 error.log 文件,并将 logger 句柄指向新的 error.log。 再来看看多进程的情况: 生成 error.log 文件; 写入一天的日志; 零点时,1 号进程判断 error.log-2020-05-15 是否存在,如果存在则删除;如果不存在,将 error.log 文件重命名为 error

nginx目录及配置(三)

醉酒当歌 提交于 2020-08-17 17:50:51
1.Nginx目录结构 日志切割目录: /etc/logrotate.d/nginx 日志切割文件 1)利用shell脚本+crontab mv nginx.log nginx.log_$(data +F) systemctl reload nginx 2)系统自带切割工具logrotate vim /etc/logrotate.conf nginx程序目录: /etc/nginx nginx程序扩展配置文件: /etc/nginx/conf.d /etc/nginx/conf.d/default.conf nginx主配置文件: /etc/nginx/nginx.conf fastcgi接口内置变量配置文件: /etc/nginx/fastcgi_params 和nginx程序字符集相关文件: /etc/nginx/koi-utf /etc/nginx/win-utf /etc/nginx/koi-win 媒体资源类型文件(识别请求信息类型): /etc/nginx/mime.types scgi接口内值变量配置文件 /etc/nginx/scgi_params uwcgi接口内值变量配置文件 /etc/nginx/uwsgi_params nginx程序模块文件保存目录: /etc/nginx/modules /etc/sysconfig/nginx /etc

nginx web服务器概念了解 配置

家住魔仙堡 提交于 2020-08-16 23:12:50
服务器 服务器 服务器 是一种提供高效计算的机器,与普通的PC主机相比,具有可观的稳定性,高并发性,可扩展性。 互联网任何一个应用都是以服务器为基础设施的,没有服务器我们就无法访问网络上的任何内容,只能使用单机的应用。例如网站,我们访问的任何一个网站都是保存在某个服务器上的,域名被DNS(域名解析服务器)解析到IP地址后,浏览器就能通过IP地址访问对应的服务器资源了。 就好比:服务器是人的家,人名相当于域名(不可重名),身份证号相当于IP地址。通过人名搜索到身份证号,通过身份证号获取到家的地址。 Web服务器 Web服务器 不再是一种硬件设施,而是一种部署在服务器上的软件应用,它服务于各种网络请求,将网络请求进行处理,分发。 所以Web服务器的处理能力很大程度决定了该网站的并发能力。著名的Web服务器有:Apache Nginx Web应用服务器 Web应用服务器 是专门处理逻辑代码的服务器,同时还具有了处理网络请求的能力,一般为了提高并发能力,会在Web应用服务器上套一层Web服务器。 例如:Tomcat uwsgi gunicorn,后两个是Python的Web应用服务器,专门处理Python的逻辑代码。 联系 其中Web服务器和Web应用服务器都部署在服务器上。 Nginx服务器 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器

yum部署nginx

最后都变了- 提交于 2020-08-16 06:49:12
操作系统:RHEL/CentOS 实战任务:yum部署nginx [root@sky9899 yum.repos.d]# vi nginx.repo [nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true [nginx-mainline] name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck=1 enabled=0 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true [root@sky9899 /]# yum-config-manager --enable nginx-mainline 已加载插件:fastestmirror ==================== repo: nginx-mainline =====

Nginx 配置 SSL 支持 HTTPS(自签证书)

痞子三分冷 提交于 2020-08-14 03:53:05
Nginx 配置 SSL ,使其支持 HTTPS(自签证书)。 1 检查 Nginx 是否支持 SSL /usr/local/nginx/sbin/nginx -V 查看是否包含 --with-http_ssl_module 模块,如果没有,则需要在编译时指定或增加该模块。 未安装过 Nginx 具体安装步骤参考: Nginx 安装 - Linux # 只需要在 ./configure 时指定 ssl 模块 --with-http_ssl_module 已安装过 Nginx 如果已经安装过 Nginx ,又不想重新安装,则可以单独添加 ssl 模块。 # 关闭 Nginx /usr/local/nginx/sbin/nginx -s stop # 查看 Nginx 安装时的配置参数,复制备用 /usr/local/nginx/sbin/nginx -V # configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module ... # 进入 nginx-1.16.1 目录 cd /usr/local/nginx-1.16.1 # 重新执行 cofigure 命令,增加 ssl 模块的配置 ./configure \ --prefix=

07.Django-中间件

99封情书 提交于 2020-08-12 01:48:24
目录 中间件 一、简介 二、中间件方法 三、中间件的应用 四、附:Django请求流程图 中间件 django的生命周期是: 前端请求 ---> nginx ---> uwsgi ---> 中间件 ---> url路由 ----> view试图 --> orm ----> 拿到数据返回给view ----> 试图将数据渲染到模版中拿到字符串 ---> 中间件- ---> uwsgi ---> nginx ----> 前端渲染。 当一个请求,首先从上往下运行这些类中process_request方法,之后进入django的从上往下执行每个类中的process_view方法,在然后就进入我们自定义的view.py文件,如果你的试图中有错误,那就会从下往上执行中间件中的process_exception方法,然后把错误信息在通过process_response中返回给客户端。 一、简介 Django的中间件类似于Linux中的管道符; Django的中间件实质就是一个雷,类之中有Django已经定义好了一些方法; Django内部的中间件注册在setting,py文件; 对全局的http请求做处理的时候可以使用中间件; 中间件中的方法不一定要全部使用,需要哪个用哪个; Django的中间件继承自MiddlewareMixin这个中间件 MiddlewareMixin是调用了其内部的 _