你好,我的配置跟你的一样,但是我用ngx.capture访问的时候在回来的头部里面没有发现keepalive,但是用curl -i url访问可以看到keepalive。不知道你遇到过没有
在
2017年03月16日 10:34,
致远 写道:
谢谢回复,那如果我想限制回后端的连接数,该怎么做配置呢
在 2017-03-16 09:05:32,"FQ Liu" <qle...@gmail.com> 写道:
keepalive 150; 表示这个upstream的连接池的容量是150。并没有限制向后端的最大连接数。
这个和缓存的概念类似,连接数可以超过150,但是超过的这部分无法缓存下来。
在 2017年3月15日星期三 UTC+8上午11:54:14,致远写道:
hi~小白提个问题:
keepalive 150;
这个配置我理解是限制往后端的长连接为150个,
实际测试发现当有多个并发请求时,tcp 建立连接数会超过这个配置值。
大神能帮忙解答确认下么
在 2017-03-15 11:19:44,"FrAnk Alvin" <
jkv...@gmail.com> 写道:
原因已找到:
upstream xxx{
keepalive 150;
server 127.0.0.1;
balancer_by_lua_file conf/lua/balancer.lua;
}
把 keepalive放到 balancer后面即
upstream xxx{
server 127.0.0.1;
balancer_by_lua_file conf/lua/balancer.lua;
keepalive 150;
}
其实在之前在启动的时候有报警告:[warn] load balancing method redefined,一开始没注意,还以为是定义的balancer引起的,修改后这个警告就没了,问题解决
在 2017年3月13日星期一 UTC+8下午4:28:03,FrAnk Alvin写道:
大家好
我的应用是在balancer中进行动态负载,
在200并发的时候隔几十秒会有30多个左右的错误,错误日志如下[error] 14148#0: *29113458 recv() failed (104: Connection reset by peer) while reading response header from upstream
其中:balancer_by_lua_block中只代理一个主机,代理多个主机并进行负载算法是没有错的
另外:我用原生ngixn进行同样的测试,是没有这个错的,不知道怎么定位了
balancer = require "ngx.balancer"
local ok, err = balancer.set_more_tries(3)
error("set balancer retry failed: " .. err)
local ok, err = balancer.set_timeouts(4, 30, 120)
error("set balancer timeout failed: " .. err)
'
upstream xxx{
keepalive 150;
server 127.0.0.1;
balancer_by_lua_block '
balancer.set_current_peer(host, port)
'
}
server {
listen 80;
location /xxx{
types_hash_max_size 2048;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
default_type application/octet-stream;
client_max_body_size 300m;
client_body_buffer_size 128k;
proxy_connect_timeout 4;
proxy_read_timeout 120;
proxy_send_timeout 30;
proxy_buffer_size 80k;
proxy_buffers 40 80k;
proxy_http_version 1.1;
proxy_set_header Connection "";
}
--
--
--