django+uwsgi+nginx 导出excel超时问题
一、问题现象和日志报错
之前在项目实现了excel导入导出:django导入导出excel实践,之前一直稳定运行,突然得知导出用户信息时出现nginx错误报告:

查看nginx日志,报错信息如下所示:
upstream timed out (: Connection timed out) while reading response header from upstream, client: 119.157.163.211,
server: localhost, request: "GET /xxxxx/export/ HTTP/1.1", upstream: "uwsgi://127.0.0.1:7080", host: "xxxx.com:8100", referrer: "http://xxxxx.com:8100/xxxxxxx/"
查看uwsgi日志,报错信息如下所示:
Tue Jul :: - SIGPIPE: writing to a closed pipe/socket/fd (probably the client disconnected) on request /stark/crm/customer/export/ (ip 113.57.163.211) !!!
Tue Jul :: - uwsgi_response_write_body_do(): Broken pipe [core/writer.c line ] during GET /stark/crm/customer/export/ (113.57.163.211)
OSError: write error
二、解决方法
1、调整uwsgi配置
ignore-singpipe 使uWSGI不显示SIGPIPE错误;
ignore-write-errors 使它不显示诸如uwsgi_response_writev_headers_and_body_do的错误;
disable-write-exception 防止 OSError写入时生成。
因此在uwsgi.ini中添加如下配置:
ignore-sigpipe=true
ignore-write-errors=true
disable-write-exception=true
配置添加后,uwsgi日志中不再显示错误信息。
2、调整nginx配置
一开始是调大了nginx的超时参数设置:
proxy_connect_timeout ;
proxy_read_timeout ;
proxy_send_timeout ;
没有产生作用nginx依然报错。
proxy_read_time针对的是反向代理转发的超时,不针对uwsgi超时,因此需要在nginx配置中添加如下参数:
uwsgi_send_timeout ; # 指定连接到后端uWSGI的超时时间。
uwsgi_connect_timeout ; # 指定向uWSGI传送请求的超时时间,完成握手后向uWSGI传送请求的超时时间。
uwsgi_read_timeout ; # 指定接收uWSGI应答的超时时间,完成握手后接收uWSGI应答的超时时间。
重启nginx后,excel导出正常。
django+uwsgi+nginx 导出excel超时问题的更多相关文章
- Linux 集群概念 , wsgi , Nginx负载均衡实验 , 部署CRM(Django+uwsgi+nginx), 部署学城项目(vue+uwsgi+nginx)
Linux 集群概念 , wsgi , Nginx负载均衡实验 , 部署CRM(Django+uwsgi+nginx), 部署学城项目(vue+uwsgi+nginx) 一丶集群和Nginx反向代理 ...
- Django + Uwsgi + Nginx 的生产环境部署实战
目录 Django + Uwsgi + Nginx 的生产环境部署实战 安装Uwsgi 一.使用命令来启动django项目 二.使用配置文件来启动我们的Django项目 安装Nginx 配置Nginx ...
- CentOS7.4部署Python3+Django+uWSGI+Nginx
CentOS7.4部署Python3+Django+uWSGI+Nginx http://www.showerlee.com/archives/2590
- virtualvenv+django+uWSGI+nginx 部署
原创博文 转载请注明出处! 1. virtualvenv 2. django 3. uWSGI 4. nginx 5. 踩坑记录 1. virtualvenv virtualvenv install ...
- Django+uwsgi+nginx+angular.js项目部署
这次部署的前后端分离的项目: 前端采用angular.js,后端采用Django(restframework),他俩之间主要以json数据作为交互 Django+uwsgi的配置可以参考我之前的博客: ...
- django+uwsgi+nginx部署(非常详细)
django+uwsgi+nginx部署 1.介绍: 在网上看了很多教程,但自己部署了很久都没有成功,这篇博文记录自己所踩过得坑. 2.环境: Ubuntu 16.04.1 LTS (GNU/Linu ...
- Django+uWSGI+Nginx 部署网站
Django 1.11设置 保证Django在本地调试没有问题: 当然这是前提^_^ 收集静态文件至指定文件夹 Django静态文件设置具体参考:https://docs.djangoproject. ...
- django+uWSGI+nginx的工作原理流程与部署过程
django+uWSGI+nginx的工作原理流程与部署过程 一.前言 知识的分享,不应该只是展示出来,还应该解释这样做是为什么... 献给和我一样懵懂中不断汲取知识,进步的人们. 授人与鱼,不如授人 ...
- python django uwsgi nginx安装
python django uwsgi nginx安装 已安装完成python/django的情况下安装 pip install uwsgi cd /usr/share/nginx/html/ vim ...
随机推荐
- python合并视频
视频合并 输入为:包含有视频的文件夹(注意路径:如 D:\\moves\\joy 双斜杠).合并后内容的名字如(我的合并视频 不用加.mp4) 输出为:我的合并视频.mp4+一个音频 ...
- 文件安全复制之 FastCopy
FastCopy是Windows平台上最快的文件拷贝.删除软件.由于其功能强劲,性能优越,一时间便超越相同类型的所有其他软件.由于该软件十分小巧,你甚至可以在安装后,直接将安装目录中的文件复制到任何可 ...
- 基于仿射的非刚体配准方法(i) 法向
为啥闲呢,因为work干完了. 为啥补档呢,因为有新work了. 呃,因为新work让人自闭. 我现在干完了两部分.一是把最近邻的部分迁移过来. 二是求法向. 首先是给三个点,就能确定平面——因为是三 ...
- class net.sf.cglib.core.DebuggingClassWriter overrides final method visit
在使用CGLIB进行动态代理的时候,报了[java.lang.VerifyError: class net.sf.cglib.core.DebuggingClassWriter overrides f ...
- 使用 jQuery.TypeAhead 让文本框自动完成 (三)(服务器返回 JSON 复杂对象数组)
项目地址:https://github.com/twitter/typeahead.js 直接贴代码了: @section headSection { <script type="te ...
- 使用Charles进行HTTPS抓包及常见问题
在渗透过程中,需要对每一个参数,每一个接口,每一个业务逻辑构建测试用例,为此,抓包分析是必不可少的一个过程.在PC端,Burpsuite成为了渗透必备的神器,然而,使用Burpsuite有时候抓取不到 ...
- 【10】Nginx:后面有无 / 的区别
写在前面的话 在 nginx 中,我们很多时候都有一个疑问,在 proxy_pass 或者 root 或者 location 后面需不需要加上 /,加和不加有啥区别. root / alias 后面 ...
- 《 .NET并发编程实战》实战习题集 - 5 - 并发查找等待算法
先发表生成URL以印在书里面.等书籍正式出版销售后会公开内容.
- linq,sqlmethods,like
LINQ to SQL will translate .NET methods in this manner: text.StartsWith(...) = LIKE ...% text.Contai ...
- 安装使用 superset
安装 superset 创建虚拟环境: python -m venv msuperset 激活虚拟环境: cd msuperset source bin/activate 安装 superset pi ...