OWASP Benchmark启动访问异常及安装路径相关问题咨询
核心结论
项目克隆到Documents文件夹而非/var/www/html完全不是故障原因。
OWASP Benchmark的runBenchmark.sh启动流程不依赖系统Apache的静态站点目录,它会通过Maven完成项目构建,要么直接启动内置的Java Web容器,要么拉起封装好的Docker容器运行应用,和系统自带的Apache服务、/var/www/html路径没有任何关系。你看到Apache默认页面,本质是请求没有打到Benchmark服务上,或者Benchmark内部应用未正常加载。
排查解决步骤
- 先确认服务实际监听端口
如果你用的是脚本自动拉起Docker的版本,执行docker ps查看容器的端口映射规则;如果是本地直接启动的版本,执行ss -tulpn | grep java查看Java进程的监听端口。注意OWASP Benchmark默认不会使用80端口,常规默认端口是HTTP的8080、HTTPS的8443,如果你直接访问http://localhost默认走80端口,命中的就是系统自带Apache的默认页面,和Benchmark无关。 - 校验应用实际加载状态
翻查./runBenchmark.sh执行后的完整日志,找包含Server startup in xxx ms、Deployment of web application archive [...] has finished的记录,确认Web应用完成初始化。注意脚本提示“容器正常运行”仅代表容器/Java进程拉起了,不代表内部的Benchmark应用加载成功:JDK版本不匹配(Benchmark仅兼容JDK 8,高版本JDK会出现应用初始化失败但进程存活的问题)、Maven依赖拉取不完整,都会导致端口上只有容器默认的Web服务返回静态默认页。 - 核对访问的路径
端口确认正确后,不要直接访问根路径,尝试访问http://localhost:<实际监听端口>/benchmark,部分版本的Benchmark不会将应用挂载到Web服务根路径,直接访问根路径只会返回容器内置的默认静态页面。 - 排查端口冲突
如果Benchmark默认要绑定的8080/8443端口已经被其他服务(包括你系统里运行的Apache、其他Tomcat实例)占用,启动脚本可能会将服务映射到随机端口,甚至出现请求被转发到同端口Apache服务的情况。可以先执行sudo systemctl stop apache2停掉系统自带的Apache服务,再重新运行启动脚本重试。
注意:不要把项目移动到
/var/www/html目录,Benchmark的启动流程是自包含的,放在任意有正常读写权限的用户目录(包括Documents文件夹)都可以正常运行,贸然移动到系统Web目录反而可能因为权限不足导致构建、启动失败。
内容的提问来源于stack exchange,提问作者Aditya Kolte
相关产品推荐
相关产品推荐

