Tomcat:在 server.xml 中设置 connectionTimeout 无效

阿潘迪特

我正在更新 Tomcat 9 中 conf/server.xml 中的默认条目以在 1 秒后超时请求,但在浏览器中没有看到此更改的影响。

我希望在 F12 开发人员工具网络选项卡中看到 500 内部服务器错误,但状态在超过 1 秒的请求中恢复为 200。

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="1000"
               redirectPort="8443" />

我已经通过设置connectionTimeouta(无效值)检查了 server.xml 是否正在被读取,并在日志中看到有关此设置的警告。此外,我确保通过发出命令来使用所需的 server.xml catalina.bat start -config \conf\server.xml

  1. 我是否具有用于设置请求超时的正确属性(connectionTimeout)?
  2. 还有什么我需要设置的吗?
  3. 有没有办法让我检查正在运行的 Tomcat 实例上是否正确设置了 connectionTimeout?

请告诉我。

HS松鼠

我不确定你到底想做什么。似乎您想设置服务器回复请求所需的超时时间。

那么大致会发生什么:

  1. 浏览器与您的服务器建立 TCP 连接
  2. 浏览器发送 html 请求
  3. 您的服务器收到请求并开始处理它
  4. 您的服务器开始发送响应
  5. 您的服务器完成发送响应

据我所知,connectiontimeout 是第 1 点和第 2 点之间发生的事情(同样,粗略地说,细节稍微复杂一些)。因此,您的服务器的响应时间在这里无关紧要。这只是浏览器与您的服务器建立连接和发送请​​求之间的时间。因此,如果您想要基于服务器响应时间的内容,那么您没有使用正确的属性。

现在,通常情况下,人们并没有真正设置响应超时,而是消费者(在本例中为浏览器)设置超时。例如,我的浏览器将超时设置为 300 秒。我在文档中查看了一些,您可能可以为工作人员设置回复超时,但我尚未对此进行测试,我不确定它是否会起作用。

更重要的是,为什么要在响应上设置超时?在处理可能需要很长时间的请求时,您是否进行了一些调用(数据库、网络服务等)?在这种情况下,您应该只在该调用上设置超时。这将允许您记录错误并立即给出 500 错误。如果您碰巧一直在处理,您可能希望中断并停止该过程并返回错误并再次记录信息,以便您知道哪里出错了。总之,控制等待来自外部资源的反馈和 Web 应用程序中的处理时间,而不是尝试在 Web 服务器上设置响应超时。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Tomcat中connectionTimeout的含义

在Tomcat中,“ connectionTimeout”到底是什么意思?

DbProviderFactory设置ConnectionTimeout

SQL Server:替换VARCHAR(MAX)字段中的无效XML字符

Tomcat 9 Azure Webapp - 在 Server.xml 中编辑连接

运行Tomcat 6.0.43时出错:找不到HTTP连接器节点:在server.xml中设置一个

什么是XML中的无效字符

如何处理“sp_xml_preparedocument”中的无效字符 (SQL Server 20188 R2)

在 tomcat server.xml 中保护密码

使用Python修改tomcat server.xml

构建镜像时如何将server.xml复制到dockerized tomcat中

如何在TeamCity的Tomcat配置(server.xml)中引用变量(JVM或环境)?

Tomcat server.xml中的调试级别(0-99)如何影响速度?

在tomcat server.xml中,可以为服务元素定义AccessLogValve

我的应用程序如何访问Tomcat server.xml中配置的keyStore.jks

如何使用andible在多个文件夹中编辑tomcat server.xml

在bash中设置-A无效

在Jetty中(不是在Tomcat中)的CDI无效bean档案扫描

XSD错误中的XML错误内容无效

在Java中剥离无效的XML字符

XML Feed数据中的字符无效

为什么&符在XML中是无效字符?

替换 .xml 文件中的无效 URI

在 jodd-http(6.0.2) 中设置代理后,connectionTimeout 似乎不起作用

Elm 安装总是失败并显示“ConnectionTimeout”错误(在 WSL 中)

在SQL Server中获取无效的列错误

SQL Server中的“无效”类型是什么?

SQL Server 2014 中的列名称无效

事务中的SQL Server“无效的列名”