Hello! 2013/4/20 azure wang: > 之前lua-resty-postgres的bug,postgresql超过最大连接数关闭了连接 > 由于程序没捕捉到,认为连接成功,然后继续业务操作,nginx会不停的写错误日志 > 直到磁盘写满,整个服务也就挂起了。虽然lua-resty-postgres的bug已经修复 > 但是感觉ngx-lua也存在一定的问题,不至于把硬盘写满把整个nginx挂起吧。 > 为避免刷 nginx 错误日志,你可以禁用 ngx_lua cosocket 的自动记错误日志的功能,即在 nginx.conf 中配置 lua_socket_log_errors off; 细节见 http://wiki.nginx.org/HttpLuaModule#lua_socket_log_errors Best regards, -agentzh
恩,我可以试试。
但是要知道,我上面说的可是curl一次请求。nginx把磁盘写满。 不是有用户恶意刷请求的那种。
Hello! 2013/4/20 azure wang: > 之前lua-resty-postgres的bug,postgresql超过最大连接数关闭了连接 > 由于程序没捕捉到,认为连接成功,然后继续业务操作,nginx会不停的写错误日志 > 直到磁盘写满,整个服务也就挂起了。虽然lua-resty-postgres的bug已经修复 > 但是感觉ngx-lua也存在一定的问题,不至于把硬盘写满把整个nginx挂起吧。 > 为避免刷 nginx 错误日志,你可以禁用 ngx_lua cosocket 的自动记错误日志的功能,即在 nginx.conf 中配置 lua_socket_log_errors off; 细节见 http://wiki.nginx.org/HttpLuaModule#lua_socket_log_errors Best regards, -agentzh --
Hello! 2013/4/20 azure wang: > 但是要知道,我上面说的可是curl一次请求。nginx把磁盘写满。 > 不是有用户恶意刷请求的那种。 > 你自己的 Lua 代码热循环了吧?那我就没办法了,呵呵。一次 socket 操作至多生成一条错误日志。 Regards, -agentzh
哈哈,我检查了一下代码的循环部分。确实有这个问题。超过最大连接数的错误在发送密码后才返回的。不是一开始的发送用户名和库名。程序期待读取一个类型是Z的包,但是返回了一个E类型的包,同时连接关闭了。而我的程序没捕捉到关闭连接的错误,出现了死循环的读。现在我增加了处理E包,一会在吧网络错误处理加上就不会在出现这个错误了。
Hello! 2013/4/20 azure wang: > 但是要知道,我上面说的可是curl一次请求。nginx把磁盘写满。 > 不是有用户恶意刷请求的那种。 > 你自己的 Lua 代码热循环了吧?那我就没办法了,呵呵。一次 socket 操作至多生成一条错误日志。 Regards, -agentzh --