[英]How do I programatically configure my Jetty Request Handler to Handle custom HTTP methods
[英]How do I configure tomcat to handle bad HTTP clients?
我们正在运行jBoss 5.1,它又使用Tomcat servlet容器。
我们一直在看到坏的HTTP客户端会打开套接字,发出HTTP请求,无法读取所有数据以及无法关闭连接的情况。
结果是tomcat线程无限期地试图写入输出流而阻塞:
SocketOutputStream.socketWrite0(FileDescriptor, byte[], int, int)
SocketOutputStream.socketWrite(byte[], int, int)
SocketOutputStream.write(byte[], int, int)
InternalOutputBuffer.realWriteBytes(byte[], int, int)
ByteChunk.flushBuffer()
ByteChunk.append(byte[], int, int)
InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(ByteChunk, Response)
IdentityOutputFilter.doWrite(ByteChunk, Response)
InternalOutputBuffer.doWrite(ByteChunk, Response)
Response.doWrite(ByteChunk)
OutputBuffer.realWriteBytes(byte[], int, int)
ByteChunk.append(byte[], int, int)
OutputBuffer.writeBytes(byte[], int, int)
OutputBuffer.write(byte[], int, int)
CoyoteOutputStream.write(byte[], int, int)
如何配置这些连接超时?
您可以将Apache放在前面。 说真的
使用默认连接器时似乎没有任何超时。 NioConnector似乎确实有写超时(尽管与此相关的源代码中有一些TODO注释)。
因此,如果您想进行一些测试,请使用NioConnector,并设置未记录的“ timout”选项-源代码可能意味着disableUploadTimeout必须为“ false”才能生效。
基本上,在server.xml中,将http Connector元素更改为如下所示:
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
timeout="60000"
disableUploadTimeout="false"
connectionTimeout="20000"
redirectPort="8443" />
(从默认的tomcat 6.0.20 server.xml文件中,添加了timeout和disableUploadTimeout属性,并且协议属性更改为“ org.apache.coyote.http11.Http11NioProtocol”)
mod_jk似乎确实有一些超时设置,并且应该比mod_proxy与apache更紧密地协作。
此页面上是否有任何有关超时的帮助? http://tomcat.apache.org/connectors-doc/generic_howto/timeouts.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.