1

我们使用 Nginx 作为多个 riak 节点的负载均衡器。在 Nginx 开始给出错误的网关 502 错误之前,设置工作正常一段时间(几个小时)。检查各个节点似乎正在工作。我们发现问题出在 nginx 缓冲区大小上,因此将缓冲区大小增加到 16k,在我们开始收到 502 错误之前,它又可以正常工作一天。

我的Nginx配置如下

upstream riak {
   server 127.0.0.1:8091 weight=3;
   server 127.0.0.1:8092;
   server 127.0.0.1:8093;    
   server 127.0.0.1:8094;

  }

  server {
    listen 8098;
    server_name 127.0.0.1:8098;
    location / {
      proxy_pass http://riak;
      proxy_buffer_size 16k;
      proxy_buffers 8 16k;
    }
  }

任何帮助表示赞赏,谢谢。

4

1 回答 1

0

检查 nginx 盒子上的 fd 是否用完。如果处于 TIME_WAIT 状态的连接过多,请检查 netstat。如果是这样,您需要将 tcp_fin_timeout 值从默认的 60 秒减少到更小的值。

于 2012-04-10T19:46:25.863 回答