各位早上好!
我今天正在玩我全新的 tomcat 安装,一切都运行得非常顺利,除了使用带有虚拟主机的管理器时我得到了一个奇怪的反应。
当我尝试在我的虚拟主机 A1 上部署 web 应用程序时,问题会弹出它非常有效,上传工作但不是应用程序的启动。
当我尝试在 vhost A2 上部署另一个 web 应用程序时根本无法正常工作,我什至无法上传存档。
奇怪的是两个虚拟主机都使用托管在 ${Catalina.base}/conf/Catalina/[engine]/[hostname]/manager.XML 下的相同 manager.xml 配置文件
该文件正在调用我的主要经理,而同一位经理正在完美地工作。
当我说管理器在我的虚拟主机上奇怪地崩溃时,这是因为它返回一条 503 错误消息,要求我在 tomcat-users.xml 上设置 tomcat 用户角色和密码,但关键是这个文件已经设置为默认值由tomcat提供的文件。
如果我直接在主机 appbase / docbase 目录上上传我的应用程序,由于 server.xml 配置文件上的 AutoDeploy 和 DeployOnStartup 指令,它可以完美运行。
因此,如果你们中的任何人有提示,我会接受它;-)
所以,我自己解决了我的问题,然后我会解释它:
Tomcat 管理器和默认应用程序受 CSRF 保护。由于我在中继客户端 IP/域信息的反向代理后面使用 VHost,tomcat 发现一些对他来说太奇怪的东西,然后抛出 403 响应。
解决方案:不要中继 Origin IP/domain。