Tomcat

Tomcat 向某些主機返回 400 錯誤

  • February 6, 2019

我最近從 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。

我還應該去哪裡尋找?這是預設行為嗎?

發布問題幾分鐘後,我自己解決了問題。

子網外的主機使用不同的名稱進行連接 - 特別是該 DNS 名稱中包含下劃線字元。DNS 名稱中不允許使用下劃線。Tomcat 8 不在乎。Tomcat 8.5 更明智。

如果 Tomcat 記錄了它拒絕請求的原因,那就太好了。

引用自:https://serverfault.com/questions/952634