尝试从Tomcat 8.5.23访问页面时遇到问题。
使用安装了Tomcat的Tomcat服务器IP地址/主机名或其他生产服务器访问Tomcat服务器,并且更新了Tomcat服务器localhost_access_log
时,Tomcat即可为该页面提供服务。
URL就像http://localhost:8080/App/status
-会返回日期,时间。
但是,当请求使用F5虚拟IP地址http://F5ipaddress:8080/App/status
时,将不提供任何页面,并且Tomcat服务器localhost_access_log
不会因任何请求而更新。
我用CORS过滤器更新了web.xml
,因为可能是由于IP差异造成的。但是没有运气。
相同的应用程序和配置在开发和测试环境中运行良好。
F5是Prod与其他环境之间的区别。
Wireshark跟踪显示请求正在通过F5传递,而Tomcat没有响应。
在一个wireshark数据包中,可以看到以下内容。但是,Tomcat日志中没有与此相关的更新。
<title>Runtime Error</title>
<span><H1>Server Error in '/' Application.<hr width=100% size=1 color=silver></H1>
<h2> <i>Runtime Error</i> </h2></span>
<font face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif ">
<b> Description: </b>An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine.
<br><br>
<b>Details:</b> To enable the details of this specific error message to be viewable on remote machines, please create a <customErrors> tag within a "web.config" configuration file located in the root directory of the current web application. This <customErrors> tag should then have its "mode" attribute set to "Off".<br><br>
答案 0 :(得分:0)
问题是由于F5监视器配置所致。
配置的F5监视器“接收字符串”参数均与Tomcat 8.5标头响应不匹配。
F5“接收字符串”参数配置为“ HTTP / 1.1 200 OK”,其中Tomcat 8.5响应“ HTTP / 1.1 200”。
由于字符串存在差异,因此F5无法满足请求。
将F5“接收字符串”参数配置为“ HTTP / 1.1 200”后,将通过F5服务请求。
在测试环境中,F5“接收字符串”参数和Tomcat 8.5响应标头与“ HTTP / 1.1 200 OK”相同。
Tomcat 8.5放弃了对原因短语的支持。
您可以在连接器配置中重新启用它,但是它将在Tomcat 9中消失。