记一次通过nginx反代网站请求总是超时的问题
问题描述
公司网站一个页面通过点击“导出数据”来进行数据的导出,后台是通过sql语句进行查询然后再导出为excel文件,因为需要查询数据过多,所以执行起来较慢,每次在等待导出一分钟之后提示网站请求超时。
解决思路
一开始查看了tomcat的连接超时时长,发现时间为20000ms,所以不是tomcat的问题,因为后台是通过nginx反向代理到tomcat,所以就把问题定位到了nginx。然后尝试了keepalive长连接,proxy_send_timeout和proxy_connect_timeout,发现都不能解决问题。后来查看nginx的错误日志发现如下报错信息:
定位问题出现于nginx等待tomcat返回请求的时候超时了,然后添加如下参数解决问题:
proxy_read_timeout 300s
总结:
proxy_read_timeout:nginx等待读取上游服务器响应报文的超时时长;
proxy_send_timeout:nginx发送请求报文到上游服务器的超时时长;
proxy_connect_timeout:上游服务器和nginx的连接超时时长;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构