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 ...
随机推荐
- flash判断,及安装注意
使用下面方法判断flash版本 function flashChecker() { var hasFlash = 0; //是否安装了flash var flashVersion = 0; //fla ...
- 自动化API之一 自动生成Mysql数据库的微服务API
本文演示如何利用Uniconnector平台,自动生成Mysql数据库的API,节约开发人员编写后台API的时间.使用生成API的前提是开发者有 自己的数据库,有数据库的管理权限,并能通过外网 ...
- 使用wireshark学习TCP
TCP标志位: 在TCP传输中,标志位用于表示特定的连接状态或提供额外信息.每个标志位占用1比特.常用的TCP标志位包含以下几种: SYN Synchronous,TCP三次握手建立连接的第一步,主动 ...
- 最近在折腾在线编辑,研究了下Wopi,下面粘贴出自己Office Online Server2016搭建与部署
至少需要两台服务器,一台域控制器,一台部署Office Online Server https://docs.microsoft.com/zh-cn/officeonlineserver/office ...
- ssh-agent的作用
明明在github上配置了ssh公钥,拉代码时却报错: sign_and_send_pubkey: signing failed: agent refused operation 解决方法:在~/.z ...
- Vue笔记3
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- RabbitMQ实战应用技巧
1. RabbitMQ实战应用技巧 1.1. 前言 由于项目原因,之后会和RabbitMQ比较多的打交道,所以让我们来好好整理下RabbitMQ的应用实战技巧,尽量避免日后的采坑 1.2. 概述 Ra ...
- 微信小程序 自定义头部导航栏和导航栏背景图片 navigationStyle
这两天因为要做一个带背景的小程序头,哭了,小程序导航栏有背景也就算了,还得让导航栏上的背景顺下来,心态小崩.现在可以单独设置一个页面的小程序头了,但是前提是要微信7.0以上的版本,考虑到兼容性问题 ...
- Docker 安装mysql以及外部访问
(1)因为我们的镜像是linux环境下的,我所在的系统是windows系统.首先通过docker客户端切换到linux环境下. (2)使用docker pull mysql/mysql-server ...
- fatal error: openssl/bn.h: No such file or directory
出现如下错误 fatal error: openssl/bn.h: No such file or directory 解决办法 # sudo apt-get install libssl-dev