IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

奇怪的 Nginx 的 upstream timed out 引起响应 502

扶凯 2012-06-07 23:09:00 累计浏览 9,967 次
本机暂存

今天查看我的 MogileFS 的图片集群,发现很多的日志响应 502 的错误.很是奇怪.然后细细的查看 nginx 输出的 error 的日志,发现大量的超时 upstream timed out (110: Connection timed out) while reading response header from upstream.
当时就在想难道 MogileFS 处理能力有这么差.
认真的调节了所有的 Nginx 连接后端代理的所有设置.但怎么样都没有改善.都实在快想放弃时,想到看看系统日志.
这时系统日志报了大量的如下的信息:
nf_conntrack: table full, dropping packet.
nf_conntrack: table full, dropping packet.
nf_conntrack: table full, dropping packet.
nf_conntrack: table full, dropping packet.
nf_conntrack: table full, dropping packet.
nf_conntrack: table full, dropping packet.
nf_conntrack: table full, dropping packet.
nf_conntrack: table full, dropping packet.
nf_conntrack: table full, dropping packet.
nf_conntrack: table full, dropping packet.
所以开始怀疑是这个引起的,网上找了一些参数来调节:
Centos 6 系列:

net.nf_conntrack_max = 655360
net.netfilter.nf_conntrack_max = 655350
net.netfilter.nf_conntrack_tcp_timeout_established = 1200

如上的参数,可以让这些的连接以更加小的超时来放弃记录.另外,会给增加默认的记录.
可以从

# cat /proc/net/nf_conntrack|wc -l
80385

看看当前有多少条这个记录.

当然,如果你不用 state 跟踪的功能,可以选择弃用conntrack 模块.所以就不会出现这种问题.根据上面设置完以后, Nginx 就工作正常,不在出现这种连接上的异常了.不用 Iptables 就关掉 iptables 这个就会没有.

同分类推荐文章

  1. 等了十年的 Go 链式管道,终于来了:seq 让你像写 Scala 一样写 Go (2026-06-25 18:38:18)
  2. Go 实验特性详解 (2026-06-21 10:05:27)
  3. amd64 微架构级别对 Go 程序性能提升多少? (2026-06-21 09:38:49)

查看更多 后端 文章 →

建议继续学习

  1. 配置Nginx+uwsgi更方便地部署python应用 (累计阅读 107,164)
  2. 搜狐闪电邮箱的 Nginx/Postfix 使用模式 (累计阅读 33,895)
  3. 记录一个软中断问题 (累计阅读 16,955)
  4. 解析nginx负载均衡 (累计阅读 16,622)
  5. server日志的路径分析 (累计阅读 11,241)
  6. Nginx模块开发入门 (累计阅读 11,170)
  7. 检查nginx配置,重载配置以及重启的方法 (累计阅读 10,896)
  8. Cacti 添加 Nginx 监控 (累计阅读 10,644)
  9. fsockopen 异步处理 (累计阅读 10,345)
  10. 使用Squid缓存视频 (累计阅读 10,339)