我最近从 Tomcat 8.0 升级到了 8.5
自升级以来,其他子网的主机对请求的响应为 400,但在同一子网上,应用程序运行时没有错误(!)
127.0.0.1 - - [06/Feb/2019:09:17:58 +0000] "GET /app/login.jsf HTTP/1.1" 200 5976
...
10.60.255.86 - - [06/Feb/2019:10:24:19 +0000] "GET /app/login.jsf HTTP/1.1" 400 –
...
fe80:0:0:0:e85f:958:813c:dee%12 - - [06/Feb/2019:10:25:53 +0000] "GET /app/login.jsf HTTP/1.1" 200 5975
...
(IPv6 地址是本地机器)
server.xml 中没有 RemoteIpValve 设置,context.xml 中没有 RemoteAddrValve。
我还应该在哪里寻找?这是默认行为吗?
答案1
在提出问题几分钟后,我自己就解决了。
子网外的主机使用不同的名称进行连接 - 特别是 DNS 名称中包含下划线字符。DNS 名称中不允许使用下划线。Tomcat 8 不关心这一点。Tomcat 8.5 更为合理。
如果 Tomcat 记录了拒绝请求的原因,那就太好了。