我有多个Tomcat服务器。在每个tomcat我加载所有图像。我想将图像从Tomcat移动到Apache并从那里访问图像。
我的问题是:是否有任何配置可以从Apache而不是Tomcat在Java Web应用程序中获取图像?
答案 0 :(得分:1)
我不这么认为 - 通过解析他们的网址来显示图片,并且在大多数情况下它是相对于当前页面的。
但你可以使用mod_proxy(或mod_jk)通过Apache使用所有的tomcats。
答案 1 :(得分:1)
隐藏apache服务器后面的tomcat服务器然后你可以这样做:
<VirtualHost www.example.com:80>
ServerName www.example.com
DocumentRoot /var/www/html
ProxyPass /img !
ProxyPass / ajp://localhost:1234/
</VirtualHost>
Apache将从/ var / www / html / img服务/ img,其他请求将被发送到tomcat。此配置需要mod_proxy_ajp apache模块才能处于活动状态。 Tomcat必须在给定端口上侦听AJP请求,使用:
<Connector port="1234" protocol="AJP/1.3" redirectPort="8443" address="127.0.0.1" URIEncoding="UTF-8" />
并配置tomcat以服务www.example.com或默认虚拟主机。
<Host
name="www.example.com"
appBase="/path/to/tomcat/apps/www.example.com"
unpackWARs="true"
autoDeploy="true"
xmlValidation="false"
xmlNamespaceAware="false"
/>
或
<Host
name="localhost"
appBase="/path/to/tomcat/apps/www.example.com"
unpackWARs="true"
autoDeploy="true"
xmlValidation="false"
xmlNamespaceAware="false"
/>
将您的webapp部署到/path/to/tomcat/apps/www.example.com/作为ROOT.war,这应该足以让整个设置正常运行。