Tomcat
Tomcat 向某些主機返回 400 錯誤
我最近從 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 記錄了它拒絕請求的原因,那就太好了。