3 回答
TA贡献1852条经验 获得超7个赞
您可以创建 VirtualHosts以在一台服务器中设置具有多个域名的多个网站。您也可以在 tomcat 7、8 和 9 中进行相同的尝试。1.编辑您相关的 server.xml 文件并包含虚拟主机,如下所示。
确保重新启动您的 tomcat 服务器以使应用的更改生效。
<Host name="example.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Alias>www.example.com</Alias>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="example_access_log" suffix=".txt"
pattern="%h %l %u %t %r %s %b" />
<Context path="" docBase="/opt/tomcat/webapps/myapp1"
debug="0" reloadable="true"/>
</Host>
<Host name="mydomain.org" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Alias>www.mydomain.org</Alias>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="mydomain_access_log" suffix=".txt"
pattern="%h %l %u %t %r %s %b" />
<Context path="" docBase="/opt/tomcat/webapps/myapp2"
debug="0" reloadable="true"/>
</Host>
解释
例如 .com 域,/opt/tomcat/webapps/myapp1 是文档根目录(对于您的 web 1)。对于 mydomain.org 域,/opt/tomcat/webapps/myapp2 是文档根目录(对于您的 web 1)。
TA贡献1934条经验 获得超2个赞
检查 tomcat/conf.web.xml 文件中的以下内容
<!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->
<Listener className="org.apache.catalina.core.JasperListener" />
TA贡献1776条经验 获得超12个赞
这就是我设法解决这个问题的方法。我不知道这是否是最好的方法,但它确实有效。只需执行以下 3 个步骤:
1) 在 %CATALINA_HOME%/conf/server.xml 中:
<Host name="mydomain.com" appBase="webapps" autoDeploy="false" unpackWARs="false"></Host>
2) 然后我必须添加一个文件:%CATALINA_HOME%/conf/mydomain.com/ROOT.xml
<Context displayName="My Website 1" docBase="/home/accountfolder/public_html" reloadable="true">
<Resource
name="jdbc/rhwebDB"
.
.
.
(database connection info, optional)
/>
</Context>
然后在 Apache 端,我必须配置 mod_proxy_ajp 连接器
我编辑了文件:
3) /etc/apache2/conf.d/userdata/std/2/accountfolder/mydomain.com/cp_jkmount.conf
<IfModule mod_jk.c>
JkMount /*.jsp ajp13
JkMount /servlet/* ajp13
JkMount /servlets/* ajp13
</IfModule>
<IfModule mod_proxy_ajp.c>
ProxyRequests Off
<Proxy *>
AddDefaultCharset Off
Order deny,allow
Allow from all
</Proxy>
ProxyPass / ajp://mydomain.com:8009/
ProxyPassReverse / ajp://mydomain.com:8009/
我的应用程序/网站位于 /home/accountfolder/public_html/ 并且 %CATALINA_HOME%/webapps/ 目录中没有任何内容。对我来说这更好,因为我可以使用 FTP 用户直接上传 jsp 或任何直接在应用程序所在的位置。
如果遇到任何问题,请检查 /home/accountfolder/public_html/ 目录中的文件夹权限和所有者,Tomcat 需要读取/执行权限等。如果 Tomcat 无法访问这些文件和文件夹,将显示 Tomcat 的 404 错误。
正如我在这篇文章中提到的,我的应用程序是“分解的”(如果这是正确的术语),我的意思是,它没有打包在 WAR 文件中。
添加回答
举报