Apache 2.4无法通过域名访问Tomcat中static目录静态资源问题
问题分析与解决
核心问题1:443端口缺少SSL配置
你的VirtualHost配置监听443端口(HTTPS),但完全没有配置SSL证书相关指令。Apache收到HTTPS请求时无法完成SSL握手,直接返回400错误,这就是net::ERR_ABORTED 400的根本原因。
核心问题2:静态资源无需通过mod_jk转发到Tomcat
你已经在Apache中配置了static目录的访问权限,完全可以让Apache直接提供这些静态文件,不需要转发到Tomcat——既提升效率,也避免转发逻辑可能带来的问题。
修改后的配置示例
<VirtualHost *:443> ServerName test.webpage.com ServerAlias www.test.webpage.com ErrorLog "logs/test-error.log" CustomLog "logs/test-access.log" common # 必须添加SSL证书配置,替换为你的证书文件实际路径 SSLEngine on SSLCertificateFile "C:/path/to/your/certificate.crt" SSLCertificateKeyFile "C:/path/to/your/private.key" # 若存在中间证书,添加以下行 # SSLCertificateChainFile "C:/path/to/your/chain.crt" <Directory "C:/Test/test2/AppServer/webapps/static/"> Options +Indexes AllowOverride None Require all granted </Directory> # 仅转发非静态资源到Tomcat JkMount /* prod # 排除static目录,交由Apache直接处理 JkUnMount /static/* prod JkUnMount /static prod </VirtualHost>
额外检查项
- 确认SSL证书文件路径正确,且Apache进程拥有读取权限
- 检查本地hosts文件已将
test.webpage.com指向localhost - 重启Apache和Tomcat,确保配置生效
内容的提问来源于stack exchange,提问作者cbuyuk
相关产品推荐
相关产品推荐

