keepalive已经打开,但是在大负载下出现30w+的并发,然后就出现大量的upstream conn error,想看看用LUA的cosocket方式在这种情况下是否有优势。
On Tuesday, October 23, 2012 2:32:25 AM UTC+8, agentzh wrote:
Hello!2012/10/22 arnoldguo:
> 前端就是把流量反向代理 proxypass到类似,基本都是GET操作.
> {
> server A;
> server B;
> ...
> }
> A,B均为http服务器
> 现在发现在大并发下有很多tcp链接堆积,改成cosocket方式能否改善?
你是否启用了 ngx_proxy 模块的 HTTP 1.1 keepalive + 连接池支持?在大并发下,节约到后端的 TCP 连接开销是很关键的。
ngx_lua 的 cosocket 相比 proxy 的一个优势是严格流式读取大请求体数据的能力,如果你的请求几乎都是 GET
请求,那么作反向代理的话,使用 ngx_proxy 模块就已经很够了。
> DX有实现代码么?
> 如果后端是php服务,能实现么?
>
其实如果你真想看到质的提升,那么就把你的 php 服务都改成 100% 非阻塞地运行在 ngx_openresty 之上的 lua 服务吧,呵呵 :)
Best regards,
-agentzh